MyBatis-Plus入门案列(测试增删改查方法)在mapper接口中添加自定义操作数据库方法并测试

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;
}

猜你喜欢

转载自blog.csdn.net/m0_68367226/article/details/130587028