<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
MyBatis 是一款優秀的持久層框架,原名 iBatis ,2010年遷移到 Goole Code 並改名為 MyBatis ,2013年遷移到 GitHub 上。MyBatis 支援客製化化 SQL 、儲存過程及高階對映。MyBatis 幾乎避免了所有的 JDBC 程式碼手動設定引數以及獲取結果集。在傳統的 SSM 框架整合中,使用 MyBatis 需要大量的 XML 設定,而在 Spring Boot 中,MyBatis 提供了一套自動化設定方案,可以做到 MyBatis 開箱即用。
建立 Spring Boot 專案,新增 MyBatis 依賴、資料庫驅動依賴以及資料庫連線池依賴,如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <!-- 排除預設的jackson-databind --> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </exclusion> </exclusions> </dependency> <!-- 引入fastjson依賴 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version> </dependency> <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>
表
CREATE TABLE `book` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(128) DEFAULT NULL, `author` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
實體類 Book
public class Book { private Integer id; private String name; private String author; @Override public String toString() { return "Book{" + "id=" + id + ", name='" + name + ''' + ", author='" + author + ''' + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } }
資料庫連線設定 application.properties
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/weirdo?useUnicode=true&characterEncoding=utf8&useSSL=true
spring.datasource.username=root
spring.datasource.password=root
建立 BookMapper
@Mapper public interface BookMapper { int addBook(Book book); int deleteBookById(Integer id); int updateBookById(Book book); Book getBookById(Integer id); List<Book> getAllBooks(); }
程式碼解釋:
<?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.sang.mapper.BookMapper"> <insert id="addBook" parameterType="com.sang.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.sang.model.Book"> UPDATE book set name=#{name},author=#{author} WHERE id=#{id} </update> <select id="getBookById" parameterType="int" resultType="com.sang.model.Book"> SELECT * FROM book WHERE id=#{id} </select> <select id="getAllBooks" resultType="com.sang.model.Book"> SELECT * FROM book </select> </mapper>
程式碼解釋:
@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(); } }
@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>>>"+ JSON.toJSONString(updateBook)); Book b3 = bookService.getBookById(1); System.out.println("getBookById>>>"+JSON.toJSONString(b3)); int delete = bookService.deleteBookById(2); System.out.println("deleteBookById>>>"+ JSON.toJSONString(delete)); List<Book> allBooks = bookService.getAllBooks(); System.out.println("getAllBooks>>>"+JSON.toJSONString(allBooks)); } }
在 Maven 工程中,XML 組態檔建議寫在 resources 目錄下,但是上文的 Mapper.xml 檔案寫在包下,Maven 在執行時會忽略包下的 XML 檔案,因此需要在 pom.xml 檔案中重新指明資原始檔位置,設定如下:
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build>
在瀏覽器中資料 http://localhost:8081/bookOps 檢視紀錄檔:
addBook>>>1
updateBook>>>1
getBookById>>>{"author":"魯迅","id":1,"name":"朝花夕拾"}
deleteBookById>>>0
getAllBooks>>>[{"author":"魯迅","id":1,"name":"朝花夕拾"},{"author":"王實甫","id":3,"name":"西廂記"},{"author":"王實甫","id":4,"name":"西廂記"}]
到此這篇關於Spring Boot 整合持久層之MyBatis的文章就介紹到這了,更多相關Spring Boot MyBatis內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45