前言
虽然但是,现在MyBatis_puls并不支持springboot3.x版本。
MyBatis_puls就像SpringBoot是为了快速开发Spring程序一样,这个是为了快速开发MyBatis程序。基于SpringBoot使用MP的开发流程
按照下面这个模板造就对了。
SpingBoot——SB整合MB的web项目模板_北岭山脚鼠鼠的博客-CSDN博客
使用如下建表语句
create table mpdb(
id bigint(20) primary key not null auto_increment,
name varchar(32) ,
password varchar(32),
age int,
tel varchar(32)
)AUTO_INCREMENT=1;
按照上面流程搞完之后,还要再pom.xml里面新加mybatis-puls的依赖,官方库里面只提供了mybatis的坐标。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
注意:依赖这里如果同时引入mybatis和mybatis-puls,就好像下面这个,后面运行会报错,mybatis-puls里面自带了mybatis,两者冲突。要删除mybatis的坐标。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.1</version>
</dependency>
数据层实体类
package com.example.pojo;
public class User {
private Long id;
private String name;
private String password;
private Integer age;
private String tel;
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
", age=" + age +
", tel='" + tel + '\'' +
'}';
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
}
Mapper层接口实现
只要继承一个BaseMaper并指定类型即可,然后就结束了?
@Mapper
public interface UserMapper extends BaseMapper<User>{
}
然后在测试类当中运行测试,然后出现以下错误,网上没找到解决方案,一个比较靠谱的说法是junit5和junit4什么的JUnit 5 测试 Spring 引擎的时候提示 junit-vintage 错误 - 知乎
但是我换了我别的项目重新运行一次就好了,顺便把那个配置文件里面type去掉了。
spring:
#数据库连接信息
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/testyhy
username: root
password: 123456
mybatis-puls相比mybatis直接把sql语句都省略了,就是不知道面对一些复杂查询应该怎么解决。
顺便说一下,这个东西把下划线命名和驼峰命名也一起识别了。
概述
这个工具是国人发明的,所以是拼音网址。
标准数据层开发
CURD工程
add功能实现
使用如下语句
@Test
public void testadd(){
mpdb mpdb=new mpdb();
mpdb.setName("yhy");
mpdb.setPassword("123456");
userMapper.insert(mpdb);
System.out.println(userMapper.selectList(null));
}
但是输出发现,自增的id不对劲.
delete功能实现
可以看见有四种删除。
实现如下,成功删除上面那个特别长的id
@Test
public void testdelete(){
userMapper.deleteById(1663895252760383489L);
}
update功能实现
使用如下语句
@Test
public void testupdate(){
mpdb mpdb=new mpdb();
mpdb.setId(1L);
mpdb.setName("tom666");
userMapper.updateById(mpdb);
}
成功更新数据
如果使用mybatis进行开发,在更新的时候还要全部都指定值才可以,这里却是只修改了不为空的属性列。实现了动态sql的效果。