Springboot整合Mybatis

  1. 新建Springboot项目
    在这里插入图片描述

  2. 添加部分依赖
    在这里插入图片描述

  3. idea中配置maven
    在这里插入图片描述

  4. 可删除部分无用文件(个人爱好)
    在这里插入图片描述

  5. 当前目录结构图(可将application.properties重命名为application.yml,idea快捷键为shift+F6重命名)
    在这里插入图片描述

  6. pom.xml中加入数据库连接池druid
    在这里插入图片描述

  7. application.yml中配置数据库信息(此时可以启动项目,检验是否成功启动)
    在这里插入图片描述

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://填写IP:3306/填写database?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
    username: root
    password: 填写密码xxx
  1. idea连接数据库,方便直接生成pojo表
    在这里插入图片描述
  2. idea中选择数据库的表,右键生成pojo类
    在这里插入图片描述
  3. idea的settings勾选此行,用于pojo类生成id
    在这里插入图片描述
  4. pojo类实现序列化Serializable接口,并快捷键生成serialVersionUID
    在这里插入图片描述
  5. pojo类加上三个注解(可省略写部分方法)
    在这里插入图片描述
  6. 新建mapper类
    在这里插入图片描述
  7. resources中新建mapper文件夹,新建*mapper.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.ab.mapper.StudentMapper">

    <!--select
        id:与StudentMapper接口中的方法名保持一致
        resultType: 结果类型(在application.xml中配置别名)
    -->
    <select id="selectAllStudent" resultType="student">
        select *
        from student
    </select>

    <!--insert
        parameterType: 参数类型
        useGeneratedKeys: 使用生成的密钥(true/false)
        数据库字段和pojo类变量要进行驼峰命名, 蛇形命名转换 在application.yml中mybatis下配置
    -->
    <insert id="insertStudent" parameterType="student" keyProperty="id" keyColumn="id" useGeneratedKeys="true">
        INSERT INTO student (id, auth_text, cid, first_name, id_card, last_name, mobile, uuid)
        VALUES (#{student.id}, #{student.authText}, #{student.cid}, #{student.firstName},
                #{student.idCard}, #{student.lastName}, #{student.mobile}, #{student.uuid})
    </insert>

    <!--update-->
    <update id="updateStudent" keyColumn="id" keyProperty="id" parameterType="student" useGeneratedKeys="true">
        update student set mobile = #{student.mobile}, first_name = #{student.firstName} where id = #{student.id}
    </update>

    <!--delete-->
    <delete id="deleteStudent" parameterType="java.lang.Long">
        delete from student where id = #{id}
    </delete>

</mapper>
  1. application.yml中加入mybatis部分配置
mybatis:
  type-aliases-package: com.ab.pojo # 此处配置别名
  mapper-locations: classpath:mapper/*Mapper.xml  # xml路径
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台sql运行的log打印
    map-underscore-to-camel-case: true  # 开启下划线(蛇形)命名转驼峰命名
  1. 新建@MybatisTest测试类,用于增、删、改、查 (也可以用@SpringBootTest 来测试。)
@ExtendWith(SpringExtension.class)  // SpringExtension 将 Spring TestContext Framework 集成到 JUnit 5 的 Jupiter 编程模型中。要使用此扩展
@MybatisTest    // mybatis测试注解: pom.xml中需要mybatis-spring-boot-starter-test依赖
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
// 可以应用于测试类以配置要使用的测试数据库而不是应用程序定义或自动配置的 DataSource 的注释。
public class StudentMapperTest {

    @Autowired
    private StudentMapper studentMapper;

    // 1. select
    @Test
    public void selectAllStudent() {
        List<Student> students = studentMapper.selectAllStudent();
        students.forEach(student -> System.out.println(student.getId() + ":" + student.getFirstName()));
    }

    // 2. insert
    @Test
    @Rollback(value = false)    // 回滚
    public void insertStudent() {
        Student student = new Student();
        int i = 1;
        // for (int i = 0; i < 5; i++) {
            student.setAuthText("123");
            Random random = new Random();
            Integer i1 = random.nextInt(10);
            student.setCid(i1.longValue());
            student.setFirstName("tom" + (i + 1));
            student.setLastName("cat" + (i + 1));
            int i2 = random.nextInt(10);
            int i3 = random.nextInt(10);
            int i4 = random.nextInt(10);
            student.setIdCard("1234567890123" + i4 + i1 + i2 + i3 + i);
            student.setMobile("123456" + i4 + i1 + i2 + i3 + i);
            student.setUuid(UUID.randomUUID().toString());
            // insert student
            studentMapper.insertStudent(student);
        // }
    }

    // 3. 改
    @Test
    @Rollback(value = false)
    public void updateStudent() {
        Student student = new Student();
        student.setId(3L);
        student.setMobile("0123456789");
        student.setFirstName("姓氏");
        studentMapper.updateStudent(student);
    }

//    4. 删
    @Test
    @Rollback(value = false)
    public void deleteStudent() {
        Long id = 2L;
        studentMapper.deleteStudent(id);
    }

}

感谢观看哟!!!
先写到这里啦,溜溜球了,哈哈哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值