MyBatis-Plus入门案例
1、创建数据库,数据表,注意id的类型bigint
2、创建SpringBoot项目,添加mybatis-plus依赖
3、编写配置文件,连接数据库
4、创建实体类,注意与表中字段对应的主键id,类型Long
5、创建Mapper接口,继承通用Mapper,BaseMapper<实体类>
6、在测试类中,调用mapper接口中的方法,测试增伤改查操作。
application.yml
server:
port: 8080
#数据源配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatisplus212?characterEncoding=utf-8&serverTimezone=UTC
username: root
password: 123456
type: com.zaxxer.hikari.HikariDataSource
mybatis-plus:
configuration:
#配置日志信息
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#配置mapper映射文件的位置,默认在类路径/mapper*.xml
mapper-locations: classpath:/mapper/*.xml
#设置指定包下所有类设置类型别名
type-aliases-package: com.dzqc.pojo
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.11</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.dzqc</groupId>
<artifactId>mybatis-plus-212</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mybatis-plus-212</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!--lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
mapper接口
<?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">
<!--MyBatis的映射文件 编写sql-->
<!--一个数据表对应一个实体类,一个实体类对应一个mapper映射文件-->
<mapper namespace="com.dzqc.mapper.UserMapper">
<select id="selectByName" resultType="com.dzqc.pojo.User">
select id,name,age,email from user where name=#{name}
</select>
<insert id="insert">
insert into User values (#{id},#{name},#{age},#{email})
</insert>
<!--Integer update(Integer age);-->
<update id="update">
update user set name = #{name} where age = #{age}
</update>
<!--Integer deleteById(Long id);-->
<delete id="delete">
delete from user where id = #{id}
</delete>
</mapper>
mapper类
package com.dzqc.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dzqc.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* MyBatis-Plus 提供通用Mapper接口
* UserMapper继承BaseMapper。继承BaseMapper中的方法
*/
@Repository//标识组件,持久层
@Mapper
public interface UserMapper extends BaseMapper<User> {
List<User> selectByName(String name);//查询
int insert(User user);//插入一条记录
int update(User user);//更新
int delete(Long id);//删除
}
测试类
package com.dzqc;
import com.dzqc.mapper.UserMapper;
import com.dzqc.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class MybatisPlus212ApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
//查询表中所有信息
List<User> users = userMapper.selectList(null);
for (User user:users) {
System.out.println("user = " + user);
}
}
@Test
public void testUpdate(){
//更新表中信息
User user = new User();
user.setId(5L);//主键
user.setAge(26);//更新的字段
//根据id更新,更新不为null的字段
this.userMapper.updateById(user);
}
@Test
public void testInsert(){
//在表中添加信息
User user = new User();
user.setName("Rose");
user.setAge(30);
user.setEmail("[email protected]");
int insert = this.userMapper.insert(user);//返回受影响行数
System.out.println("insert = " + insert);
System.out.println(user.getId());//自增后的id会回填到对象中
}
@Test
public void testDelete(){
//删除表中信息
int i = this.userMapper.deleteById(4L);
System.out.println("i = " + i);
}
@Test
public void testByName(){
List<User> userList = userMapper.selectByName("Tom");
//对集合中每一个
userList.forEach(System.out::println);
}
@Test
public void Insert(){
User user = new User();
user.setName("Jisoo");
user.setAge(25);
user.setEmail("[email protected]");
int insert = userMapper.insert(user);
System.out.println("insert = " + insert);
}
@Test
public void testupdateByAge(){
User user=new User();
user.setAge(26);
user.setName("Ethel");
Integer result = userMapper.update(user);
System.out.println("根据age更新操作受影响行数 = " + result);
}
@Test
public void testdeleteById(){
Integer result = userMapper.delete(5L);
System.out.println("根据id删除操作受影响行数 = " + result);
}
}
实体类
package com.dzqc.pojo;
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}