mybatiplus的apply_MyBatisPlus⼊门到上⼿(⼀)
⼀:简介
MyBatis-Plus(简称 MP)是⼀个MyBatis的增强⼯具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提⾼效率⽽⽣。
⼆:ORM框架
ORM(Object Relational Mapping)框架采⽤元数据来描述对象与关系映射的细节,元数据⼀般采⽤XML格式,并且存放在专门的对象⼀映射⽂件中。只要提供了持久化类与表的映射关系,ORM框架在运⾏时就能参照映射⽂件的信息,把对象持久化到数据库中。
三:MP与JPA对⽐
在使⽤的⾓度来说少写⼀句sql就少写⼀句,在单表操做过程中两者都基本都是能满⾜这个特点。关于学习难度来说其实两者差不多,没有另外拔⾼知识点,只是在底层原理不同。
四:构建项⽬
前提准备
创建数据库:mp 数据表:tb_user
创建表
CREATE TABLE `tb_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_name` varchar(20) DEFAULT NULL COMMENT '⽤户名',
`password` varchar(20) DEFAULT NULL COMMENT '密码',
`name` varchar(30) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`version` int(10) DEFAULT '1',
`deleted` int(1) DEFAULT '0' COMMENT '1代表删除,0代表未删除',
`sex` int(1) DEFAULT '1' COMMENT '1-男,2-⼥',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我使⽤的是IDEA⼯具
Lombok
springBoot:2.2.4
mybatisPlus:3.1.1
mysql:8.1.19
pom⽂件
com.baomidou
mybatis-plus-boot-starter
3.1.1
mysql-connector-java
8.0.19
org.springframework.boot spring-boot-starter-web
org.springframework.boot spring-boot-starter-logging org.projectlombok
lombok
true
org.springframework.boot spring-boot-starter-test
test
org.junit.vintage
junit-vintage-engine
junit
junit
test
org.slf4j
slf4j-log4j12
org.apachemons commons-lang3
3.8.1
com.baomidou
mybatis-plus-extension
3.1.1
com.baomidou
mybatis-plus-generator
3.1.1
org.springframework.boot spring-boot-starter-freemarker org.springframework.boot spring-boot-maven-plugin
application:
name: mybatisPlusSpringBoot
datasource:
driver-class-name: sql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/mp?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=utf8 username: root
password: root
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#关闭⾃动驼峰映射,该参数不能和mybatis-plus: config-location同时存在:
# map-underscore-to-camel-case: false
#全局地开启或关闭配置⽂件中的所有映射器已经配置的任何缓存,默认为 true。
#cache-enabled: false
#配置⾃定义的mapper⽂件 (多表查询适⽤)
mapper-locations: classpath*:mybatis/*.xml
#配置实体对象扫描包===在l中简化使⽤
type-aliases-package: com.hhz.mp.pojo
#配置全局主键⽣成策略
# global-config:
# db-config:
# id-type: auto
#配置全局表名前缀
# global-config:
# db-config:
# table-prefix: tb_
#乐观锁配置
global-config:
db-config:
# 逻辑已删除值(默认为 1)
logic-delete-value: 1
# 逻辑未删除值(默认为 0)
# 枚举包扫描
type-enums-package: com.ums
创建实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("tb_user")
public class User extends Model {
/
/设置按照数据库⾃增长
@TableId(type = IdType.AUTO)
private Long id;
//下划线可⾃动转驼峰命名 这⾥可以不写
@TableField(value = "user_name")
private String userName;
//查询时不返回该字段的值
//fill =FieldFill.INSERT 对插⼊密码的时候可以进⾏填充@TableField(select = false, fill = FieldFill.INSERT) private String password;
private String name;
private Integer age;
//字段名与数据库名不⼀致
@TableField(value = "email")
private String mail;
//忽略在数据库的字段
@TableField(exist = false)
private String address;
//添加版本信息__乐观锁
@Version
private Integer version;
//逻辑删除
@TableLogic
private Integer deleted;
private SexEnum sex;
public User(String userName, Integer age) {
this.userName = userName;
this.age = age;
}
public User(String userName, String password, String name, Integer age, String mail) {
this.userName = userName;
this.password = password;
this.name = name;
this.age = age;
this.mail = mail;
}
public User(Long id) {
this.id = id;
}
public User(Long id, String userName, String password, String name, Integer age, String mail) { this.id = id;
this.userName = userName;
this.password = password;
this.name = name;
this.age = age;jpa mybatis
this.mail = mail;
}
}
创建dao层
@Repository
public interface UserMapper extends BaseMapper {
}
创建⼀个测试类
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyApplicationTest {

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。