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
。
在 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>