SpringBoot 学习笔记_整合持久层——MyBatis

SpringBoot 学习笔记_整合持久层——MyBatis

声明:

本次学习参考 《SpringBoot + Vue 开发实战》 · 王松(著) 一书。

本文的目的是记录我学习的过程和遇到的一些问题以及解决办法,其内容主要来源于原书。

如有侵权,请联系我删除

SpringBoot 整合持久层开发

整合 MyBatis

MyBatic 是一款优秀的持久层框架。 几乎避免了所有的 JDBC 代码手动设置参数以及获取结果集。

  • 创建数据库和表

  • 创建 SpringBoot 项目,添加依赖

     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.2</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.9</version>
    </dependency>
    
  • 数据库配置(application.properties)

  • 创建实体类

  • 创建数据库访问层

    @Repository
    @Mapper
    public interface BooksMapper {
        int addBook(Books book);
        int deleteBookById(Integer id);
        int updateBookById(Books book);
        Books getBookById(Integer id);
        List<Books> getAllBooks();
    }
    

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

    • xxxMapper 类上添加 @Mapper 注解,表明该接口是一个 MyBatis 中的 Mapper
    • 在配置类上添加 @MapperScan("org.sang.mapper") 注解,表示扫描 org.sang.mapper 包下的所有接口作为 Mapper
    如果遇到:`Could not autowire. No beans of 'xxxx' type found`

    在 Mapper 上加上 @Repository 注解即可

  • 创建 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="org.sang.mapper.BooksMapper">
        <insert id="addBook" parameterType="org.sang.bean.Books">
            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="org.sang.bean.Books">
            UPDATE book SET name=#{name}, author=#{author} WHERE id=#{id}
        </update>
    
        <select id="getBookById" parameterType="int" resultType="org.sang.bean.Books">
            SELECT * FROM book WHERE id=#{id}
        </select>
    
        <select id="getAllBooks" resultType="org.sang.bean.Books">
            SELECT * FROM book
        </select>
    </mapper>
    
  • 创建 Service 和 Controller

    @Service
    public class BooksService1 {
        @Autowired
        BooksMapper booksMapper;
    
        public int addBook(Books book){
            return booksMapper.addBook(book);
        }
    
        public int updateBook(Books book){
            return booksMapper.updateBookById(book);
        }
    
        public int deleteBookById(Integer id ){
            return  booksMapper.deleteBookById(id);
        }
    
        public Books getBookById(Integer id){
            return booksMapper.getBookById(id);
        }
    
        public List<Books> getAllBooks(){
            return booksMapper.getAllBooks();
        }
    }
    
  • 配置 pox.xml 文件

    <build>
        <!-- 整合 MyMyBatis 配置 -->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>
    

整合 SpringDataJPA

多数据源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HolaSecurity

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值