-
如图所示的内容笔记
查看全部 -
如图所示的内容笔记
查看全部 -
如图所示的内容笔记
查看全部 -
如图所示的内容笔记
查看全部 -
如图所示的内容笔记
查看全部 -
开发环境:
查看全部 -
JPA:java持久层API,可以理解为一种规范,Hibernate就是其具体一个实现。(目前比较常用的是SpringDataJpa,它是Spring提供的一套简化开发的框架,按照约定好的方法命名规则,编写dao层接口,就可以在不编写实现情况下执行数据库操作,还提供了除CRUD以外的功能,例如分页、排序、复杂查询等等,SpringDataJpa可以理解为对JPA的再次封装,底层仍旧是Hibernate)
Mybatis优势
1、SQL语句可以自由控制,更灵活、性能较高。
2、SQL与代码分离,易于阅读和维护。
3、提供XML标签,支持编写动态SQL语句。
JPA优势
JPA移植性比较好(Hibernate方言)
提供了很多CRUD方法、开发效率高(不用编写sql语句)
对象化程度更高(面向对象开发思想)
Mybatis劣势
简单CRUD操作需要编写SQL语句(单表仍需要编写Mapper接口方法和xml的sql)
XML中有大量sql需维护
mybatis自身功能有限
查看全部 -
Mybatis-plus简介:Mybatis增强工具,只做增强,不作改变,简化开发,提高效率。
1、Crab:Mybatisplus3.0教学版。(MP核心程序员作品)
2、Crab:WEB极速开发框架。(MP项目负责人作品)
github项目地址:https://github.com/baomidou/mybatis-plus
码云项目地址:https://gitee.com/baomidou/mybatis-plus
Mybatis-plus特点:
1、无侵入(只做增强,不作改变)、损耗小(程序启动时,进行注入增强的功能)、强大的CRUD操作(通用Service、通用Mapper,通过少量配置可实现单表操作,类似Hibernate)、支持条件构造器,支持各类需求。
2、支持Lambda形式调用、提供了Lambda条件构造器,支持多种数据库(主流的Mysql、Oracle等)
3、支持主键生成策略、支持ActiveRecord模式(实体类只需要继承Model,然后通过实体类完成CRUD操作)。
4、支持全局自定义操作(支持全局通用方法注入)、支持关键词自动 转义(数据库关键词自动转义)
5、内置代码生成器(实体、Mapper接口、Mapper文件、Service、Controller)、内置分页插件(基于Mybatis的物理分页)、内置性能分析插件
6、内置全局拦截插件(提供了delete、update智能分析阻断,也可以自定义拦截规则,以防误操作)、内置sql注入剥离器(有效防止注入攻击)
查看全部 -
selectMaps
查看全部 -
1、用transient给属性做声明,该方式无序列化
eg:private transient int flag;
2、用static给属性做声明,默认不给静态变量生成get/set方法,所以这时需要手动写get/set方法,全类唯一一个的属性。
3、@TableField(exist=false)
给属性添加该注解,表示该字段在数据库中不存在。默认exist=true。
该种方式可以生成get/set方法,也不是唯一的属性。
查看全部 -
1、@TableName("表全名")
指定实体类对应的表名
2、@TableId
mp会按照雪花自增填充主键,默认实体类的主键为"id",当没有id时,它就不知道谁是主键,这时可以添加该注解
3、@TableField("字段名")
当实体类中的属性名和字段名对不上时,用该注解指定数据库中的字段名
查看全部 -
一、建库建表
#创建数据库
create
table
user
( id
BIGINT
(20)
PRIMARY
key
not
null
comment
'主键'
,
name
varchar
(30)
default
null
comment
'姓名'
,
age
int
(11)
default
null
comment
'年龄'
,
email
varchar
(50)
default
null
comment
'邮箱'
,
manager_id
BIGINT
(20)
default
null
comment
'直属上级id'
,
create_time DATETIME
default
null
comment
'创建时间'
,
CONSTRAINT
manager_fk
foreign
key
(manager_id)
REFERENCES
user
(id)) ENGINE=INNODB CHARSET=UTF8;
#数据初始化
INSERT
INTO
user
(id,
name
,age,email,manager_id,create_time)
VALUES
(1087982257332887553,
'大boss'
, 40,
'boss@baomidou.com'
,
NULL
,
'2019-01-11 14:20:20'
),
(1088248166370832385,
'王天风'
,25,
'wtf@baomidou.com'
, 1087982257332887553,
'2019-02-05 11:12:22'
),
(1088250446457389058,
'李艺伟'
,28,
'lyw@baomidou.com'
, 1088248166370832385,
'2019-02-14 08:31:16'
),
(1094590409767661570,
'张雨琪'
,31,
'zyq@baomidou.com'
, 1088248166370832385,
'2019-01-14 09:15:15'
),
(1094592041087729666,
'刘红雨'
,32,
'lhm@baomidou.com'
, 1088248166370832385,
'2019-01-14 09:48:16'
);
二、引入依赖
1、建立maven项目(勾上create a simple project )
2、在pom中引入依赖
<
parent
>
<
groupId
>org.springframework.boot</
groupId
>
<
artifactId
>spring-boot-starter-parent</
artifactId
>
<
version
>2.1.3.RELEASE</
version
>
</
parent
>
<
dependencies
>
<
dependency
>
<
groupId
>org.springframework.boot</
groupId
>
<
artifactId
>spring-boot-starter</
artifactId
>
</
dependency
>
<
dependency
>
<
groupId
>org.springframework.boot</
groupId
>
<
artifactId
>spring-boot-test</
artifactId
>
<
scope
>test</
scope
>
</
dependency
>
<!-- Lombok -->
<
dependency
>
<
groupId
>org.projectlombok</
groupId
>
<
artifactId
>lombok</
artifactId
>
<
optional
>true</
optional
>
</
dependency
>
<!-- Mybatis-Plus启动器 -->
<
dependency
>
<
groupId
>com.baomidou</
groupId
>
<
artifactId
>mybatis-plus-boot-starter</
artifactId
>
<
version
>3.1.0</
version
>
</
dependency
>
<!-- Mysql JDBC 不用指定version,依赖的spring jdbc已指定 -->
<
dependency
>
<
groupId
>mysql</
groupId
>
<
artifactId
>mysql-connector-java</
artifactId
>
</
dependency
>
</
dependencies
>
项目上有报错:项目右键--maven--update project即可
三、配置
resource包下创建file(名字为application.yml)
spring:
datasource:
driver-class-name:com.mysql.cj.jdbc.Driver
url:jdbc:mysql://localhost:3306/mp?useSSL=false&serverTimezone=GMT%2B8
username:root
password:root
四、编码
1、建启动类
java包下创建com.mp包-->mp包下创建Java类(加上main方法)
2、加注解
类上:@SpringBootApplication意思为spring boot的启动类
3、main方法中编写
SpringApplication.run(启动类.class,args);
4、创建实体类
在mp包下建立entity包-->创建User的Java类
依次编写数据库中的字段-->在类上添加@Data注解,就可自动生成get()、set()方法
5、com.mp.dao-->UserMapper.java
该mapper类要继承MP的BaseMapper类,<User>泛型。
在启动类上添加@MapperScan("com.mp.dao"),指定需要扫描的Mapper包
五、测试
test-->com.mp-->SimpleTest.java
该类添加@SpringBootTest注解和@RunWith(SpringRunner.class)
添加@Aotuwired注解,注入userMapper类
写一个select()方法,添加@Test注解:
List<User> list = userMapper.selectList(null);
list.forEach(System.out::println);//迭代输出
查看全部 -
1、在maven官网下载lombox.jar-->project lombox.jar
2、安装路径选择到eclipse.exe/myeclipse.exe
3、装完后,在eclipse/myeclipse文件根目录中生成lombox.jar文件,同时在eclipse/license.txt(myeclipse/myeclipse.ini)文件中会生成lombox.jar的路径(如果存放路径带有中文,则需要修改路径和lombox文件的位置)
查看全部 -
transient, static, @TableField(exist = false)
查看全部 -
默认情况下实体名和表名一致,如果不一致可以在实体类中使用注解指定表名
默认情况下主键使用id标识,如果不一致可以在实体类中使用注解指定
查看全部
举报