mybatis-plus 使用
sql准备
DROP TABLE IF EXISTS user;
CREATE TABLE user(
id BIGINT(20) NOT NULL COMMENT '主键ID',
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年龄',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (id));
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES(1, 'Jone', 18, 'test1@baomidou.com'),(2, 'Jack', 20, 'test2@baomidou.com'),(3, 'Tom', 28, 'test3@baomidou.com'),(4, 'Sandy', 21, 'test4@baomidou.com'),(5, 'Billie', 24, 'test5@baomidou.com');
1.添加依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>5.1.46</version>
</dependency>
</dependencies>
2.修改配置文件
server:
port: 4321
spring:
profiles:
active: /
datasource:
url: jdbc:mysql://10.20.7.143:3306/test_mysql?useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath*:mapper/*.xml
type-aliases-package: com.lzx.testmp.doman
3.入口类添加扫描注解
@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(QuickStartApplication.class, args);
}
}
4.创建实体类User
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
5.编写mapper接口
public interface UserMapper extends BaseMapper<User> {}
6.编写测试类
@RunWith(SpringRunner.class)
@SpringBootTestpublic
class SampleTest {
@Autowired
private UserMapper userMapper;
@Test
public void testSelect() {
User user=new User();
user.setId(1);
user.setName("test");
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
List<User> userList = userMapper.insert(user);
List<User> userList = userMapper.deleteById(1);
List<User> userList = userMapper.updateById(user);
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.like("name","张");
IPage<User> userIPage=userMapper.selectPage(new Page<User>(1,10),queryWrapper);
}
}
7 分页插件配置
@EnableTransactionManagement
@Configuration
@MapperScan("com.lzx.testmp.dao.*")
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}}
}
8.编写xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lzx.testmp.dao.UserMapper">
<resultMap id="BaseResultMap" type="com.lzx.testmp.doman.User">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="age" property="age" />
<result column="email" property="email" />
</resultMap>
<sql id="Base_Column_List">
id, name, age,email
</sql>
<select id="findById2" resultType="com.lzx.testmp.doman.User">
select *from user where id=#{id}
</select>
</mapper>
9.编写mapper接口
public interface UserMapper extends BaseMapper<User> {
User findById2(Long id);
}