久久96国产精品久久久-久久发布国产伦子伦精品-久久精品国产精品青草-久久天天躁夜夜躁狠狠85麻豆

技術員聯盟提供win764位系統下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當前位置:主頁 > 教程 > 服務器類 >

Spring Boot集成MyBatis(注解方式)詳解

來源:技術員聯盟┆發布時間:2017-06-06 00:04┆點擊:

MyBatis是支持定制化SQL、存儲過程以及高級映射的優秀的持久層框架,避免了幾乎所有的JDBC代碼和手動設置參數以及獲取結果集。spring Boot是能支持快速創建Spring應用的Java框架。本文通過一個例子來學習Spring Boot如何集成MyBatis,而且過程中不需要XML配置。

創建數據庫

本文的例子使用MySQL數據庫,首先創建一個用戶表,執行sql語句如下:

CREATE TABLE IF NOT EXISTS user ( `id` INT(10) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NULL DEFAULT NULL , `age` INT(2) NOT NULL , PRIMARY KEY (id) )

工程目錄結構與依賴配置

首先新建一個Maven工程,并配置Pom依賴,本例中所用到的依賴如下:

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.2.RELEASE</version> <relativePath /> </parent> <dependencies> <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.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

然后創建一下工程目錄結構,如下圖所示:

 Spring Boot集成MyBatis(注解方式)詳解 三聯

代碼文件內容

0. 創建配置文件——application.properties

寫入一下內容:

spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=123456

1. 創建POJO——entity/User.java

這是一個POJO,包含了id, name, age三個屬性,代碼如下:

package com.xyz.dbtest.entity; public class User { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }

2. 創建一個數據層接口——service/UserService.java

這是一個Mapper類,代碼如下:

package com.xyz.dbtest.dao; import com.xyz.dbtest.entity.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper //1 public interface UserDao { @Results({ //2 @Result(property = "id", column = "id"), //2 @Result(property = "name", column = "name"), @Result(property = "age", column = "age") }) @Select("SELECT * FROM user WHERE age = #{age}") //3 List<User> get(int age); @Insert("INSERT INTO user(name, age) VALUES (#{name}, #{age})") //3 void insert(User user); }

//1 @Mapper將UserDao聲明為一個Mapper接口
//2 @Results是結果映射列表,@Result中property是User類的屬性名,colomn是數據庫表的字段名
//3 @Select, @Insert 分別代表了執行的真實SQL

3. 創建一個用戶服務——service/UserService.java

這是一個服務類Bean,提供三個函數功能,代碼如下:

package com.xyz.dbtest.service; import com.xyz.dbtest.dao.UserDao; import com.xyz.dbtest.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service //聲明成一個spring bean public class UserService { @Autowired //連接到UserDao Bean private UserDao userDao; public String show() { return "Hello World!"; } public List<User> showDao(int age) { return userDao.get(age); } public String insert(String name, int age) { //插入一條記錄 User user = new User(); user.setName(name); user.setAge(age); userDao.insert(user); return "Insert ( \""+name+"\", age"+age+") OK!"; } }

4. 常見一個Web Controller——controller/UserController.java

這是一個Spring Web的Controller類,引入了spring-boot-starter-web依賴,代碼如下: