总结:

和SSM相比,

1)导入的包不同

2)不再有mybatis的核心配置文件了,也不同单独写db.properties了,以前“开启二级缓存,起别名”等在核心配置文件里的配置全都配置到application.yml里

3)@Mapper注解,代替了什么往下看吧!

1、新建project/module

选择如下模板

2、创建测试用的表 

本来想直接用公司的表去测,但是除了查询,还要测试增删改,别不小心改数据了,不能拿公司的表测,笑死。那就拿之前建的book表去测吧

 3、导入jar包 

 导入mybatis官方提供的整合用的jar包mybatis-spring-boot-starter(有的公司不用starter这个jar包,而是直接用mybatis-plus)

<!--连接mysql.版本要和mysql的版本匹配起来,mysql是5开头的话这个也要以5开头,如果是8开头。。-->
<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
</dependency>

<!--mybatis-->
<dependency>
     <groupId>org.mybatis.spring.boot</groupId>
     <artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>

 4、application.yml配置

(1) 配置datasource数据源

PS: 创建spring initializer项目后,自动创建一个application.properties配置文件,但是官方推荐使用yml。所以删掉application.properties,自己建一个application.yml/application.yaml

你引入了数据库的jar包,就算代码里没写数据库的任何操作,但你不配置datasource的话,也会报错找不到url

spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/db_mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

(2)整合mybatis

我把xml文件放在这里:

​# 整合mybatis

# 这一行不是必须的配置。
# 这里是指定xxMapper.xml文件里resultType/parameterType的全路径位置,这样你就不用写全路径名了,只写类名就行(比如以前要写com.org.exam.User,现在只需要写类名User)。
# 如果你在xml文件里写全路径名,这里就不用配置。或者用mybatis Builder插件,直接生成的xml 就是带着全路径的,就不用配置
mybatis.type-aliases-package=com.example.demo.springbootmybatis.pojo  

# 这一行是必须的,目的是匹配到xml文件
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

5、开发

(1)pojo.Blog.java

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Blog {
    private String id;
    private String title;
    private String author;
    private Date create_time;
    private int views;
}

(2)BlogMapper.java 接口

@Mapper
public interface BlogMapper {
    //1.查找所有Blog
    List<Blog> selectAllBlog();
    //2.添加一个Blog
    void addBlog(Blog blog);
    //3.修改
    void updateBlog(Map<String,Object> map);
    //4.删除
    void deleteBlogById(String id);
}

这里用到两个注解(二选一)@Mapper和@Repository,都是自动帮我们生成mapper接口的实现类MapperImpl.java,然后将实现类的实例直接注入到bean中,不需要我们再手动去写mapper接口的实现类。相当于SSM中我们配置的这一段:

 但是在springboot中更简洁,有两种方法:

  • 方法一:@Mapper注解
  • 方法二:@Repository注解+@MapperScannerConfigurer注解

(3)BlogMapper.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.example.demo.springbootmybatis.dao.BlogMapper">
    <select id="selectAllBlog" resultType="blog">
       select * from db_mybatis.blog
   </select>

    <insert id="addBlog" parameterType="blog">
        insert into db_mybatis.blog
        values (#{id},#{title},#{author},#{create_time},#{views})
    </insert>
    
    <update id="updateBlog" parameterType="map">
        update db_mybatis.blog
        SET title=#{title}
        where id=#{id}
    </update>

    <delete id="deleteBlogById" parameterType="java.lang.String">
        delete from db_mybatis.blog
        where id=#{7/21}
    </delete>
</mapper>

 (4)测试

@SpringBootTest
class SpringbootMybatisApplicationTests {
    @Resource
    BlogMapper blogMapper;

    @Test
    void contextLoads() throws SQLException {
        //查找
//        List<Blog> blogs = blogMapper.selectAllBlog();
//        System.out.println(blogs);

        //增加
        //blogMapper.addBlog(new Blog("7/21","怎么还不下班","小丁",new Date(),2));

        //删除
        blogMapper.deleteBlogById("7/21");

        //修改
//        Map<String, Object> map = new HashMap<>();
//        map.put("id","7/21");
//        map.put("title","还有两个小时下班");
//        blogMapper.updateBlog(map);
    }

}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐