SpringBoot 整合MyBatis

MyBatis支持定制化SQL、存储过程以及高级映射。MyBatis几乎避免了所有的JDBC代码手动设置参数以及获取结果集。在传统的SSM框架整合中,使用MyBatis需要大量的XML配置,而在Spring Boot中,MyBatis官方提供了一套自动化配置方案,可以做到MyBatis开箱即用。

 

添加MyBatis依赖、数据库驱动依赖以及数据库连接池依赖:

复制代码
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.9</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
复制代码

 

application.yml配置:

复制代码
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/boot?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456

mybatis:
  mapper-locations:
    - classpath:mapper/*.xml
复制代码

 

创建数据库访问层:

1
2
3
4
5
6
7
8
9
10
11
12
13
@Mapper
public interface BookMapper {
 
    int addBook(Book book);
 
    int deleteBookById(Integer id);
 
    int updateBookById(Book book);
 
    Book getBookById(Integer id);
 
    List<Book> getAllBooks();
}

有两种方式指明该类是一个Mapper:

第一种如前面的代码所示,在BookMapper上添加@Mapper注解,表明该接口是一个MyBatis中的Mapper,这种方式需要在每一个Mapper上都添加注解;

还有一种简单的方式是在配置类上添加@MapperScan("org.sang.mapper")注解,表示扫描org.sang.mapper包下的所有接口作为Mapper,这样就不需要在每个接口上配置@Mapper注解了。

 

创建BookMapper.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.xc.xcspringboot.mapper.BookMapper">
    <insert id="addBook" parameterType="com.xc.xcspringboot.model.Book">
        INSERT INTO book(name, author)
        VALUES (#{name}, #{author})
    </insert>
    <delete id="deleteBookById" parameterType="int">
        DELETE
        FROM book
        WHERE id = #{id}
    </delete>
    <update id="updateBookById" parameterType="com.xc.xcspringboot.model.Book">
        UPDATE book
        set name=#{name},
            author=#{author}
        WHERE id = #{id}
    </update>
    <select id="getBookById" parameterType="int" resultType="com.xc.xcspringboot.model.Book">
        SELECT *
        FROM book
        WHERE id = #{id}
    </select>
    <select id="getAllBooks" resultType="com.xc.xcspringboot.model.Book">
        SELECT *
        FROM book
    </select>
</mapper>
复制代码

 

ookService与BookController,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@Service
public class BookService {
 
    @Autowired
    BookMapper bookMapper;
 
    public int addBook(Book book) {
        return bookMapper.addBook(book);
    }
 
    public int updateBook(Book book) {
        return bookMapper.updateBookById(book);
    }
 
    public int deleteBookById(Integer id) {
        return bookMapper.deleteBookById(id);
    }
 
    public Book getBookById(Integer id) {
        return bookMapper.getBookById(id);
    }
 
    public List<Book> getAllBooks() {
        return bookMapper.getAllBooks();
    }
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@RestController
public class BookController {
 
    @Autowired
    BookService bookService;
 
    @GetMapping("/bookOps")
    public void bookOps() {
        Book b1 = new Book();
        b1.setName("西厢记");
        b1.setAuthor("王实甫");
        int i = bookService.addBook(b1);
        System.out.println("addBook>>>" + i);
 
        Book b2 = new Book();
        b2.setId(1);
        b2.setName("朝花夕拾");
        b2.setAuthor("鲁迅");
        int updateBook = bookService.updateBook(b2);
        System.out.println("updateBook>>>" + updateBook);
 
        Book b3 = bookService.getBookById(1);
        System.out.println("getBookById>>>" + b3);
 
        int delete = bookService.deleteBookById(2);
        System.out.println("deleteBookById>>>" + delete);
 
        List<Book> allBooks = bookService.getAllBooks();
        System.out.println("getAllBooks>>>" + allBooks);
    }
 
}

  

参考来源:Spring Boot+Vue全栈开发实战 5.2 整合MyBatis

 

posted @   草木物语  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2018-05-26 pagehelper 使用
2018-05-26 jackson json转对象 对象转json
点击右上角即可分享
微信分享提示