mybatis是一個優秀的基於java的持久層框架,它內部封裝了jdbc,使開發者只須要關注sql語句自己,而不須要花費精力去處理加載驅動、建立鏈接、建立statemenet等繁雜的過程。
在當今的互聯網應用中項目,mybatis框架一般會由spring框架進行資源整合,做爲數據層技術實現數據交互操做。java
`<!-- 添加mybatis starter依賴(SpringBoot 工程下提供了mybatis的自動配置) -->mysql
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency>`
複製下面內容,建立數據庫和數據表:spring
CREATE DATABASE db_user; use db_user; DROP TABLE IF EXISTS `emp`; CREATE TABLE `emp` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `age` int(11) DEFAULT NULL, `salary` double DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; INSERT INTO `emp` VALUES (1, 'Tom', 20, 2000); INSERT INTO `emp` VALUES (2, 'jack', 19, 3500); INSERT INTO `emp` VALUES (3, 'lisi', 22, 7000); INSERT INTO `emp` VALUES (4, 'ailce', 18, 1000);
在application.properties中添加配置信息:sql
# close banner spring.main.banner-mode=off # Spring DateSource spring.datasource.url=jdbc:mysql:///db_user?serverTimezone=GMT%2B8&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root # Spring mybatis mybatis.mapper-locations=classpath:/mapper/*/*.xml
該文件用於存放映射語句
在src/main/resources目錄下建立mapper/goods目錄,而後在其目錄中添加GoodsMapper.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> </mapper>
User工具類用於封裝用戶信息apache
package com.cy.pj.goods.utils; /** * 用戶工具類 * @author BigData * */ public class User { private Integer id; private String name; private Integer age; private Double salary; 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 Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Double getSalary() { return salary; } public void setSalary(Double salary) { this.salary = salary; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", age=" + age + ", salary=" + salary + "]"; } }
將下面內容複製到<mapper></mapper>之間:segmentfault
<mapper namespace="com.cy.pj.goods.dao.GoodsDao"> <select id="findAll" resultType="com.cy.pj.goods.utils.User"> select * from emp </select> </mapper>
package com.cy.pj.goods.dao; import java.util.List; import org.apache.ibatis.annotations.Mapper; import com.cy.pj.goods.utils.User; /** * @Mapper 用於描述(作標記)數據層訪問接口,用於告訴mybatis框架 * 使用此註解描述的接口要由底層爲建立實現類,在實現類中基於mybatis * API實現與數據庫的交互,這個類的對象最後會交給Spring管理。 */ @Mapper public interface GoodsDao { /** * 查詢全部用戶信息 * @return List集合 */ List<User> findAll(); }
package com.cy.pj.goods.dao; import java.util.List; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import com.cy.pj.goods.utils.User; /** * 用於測試程序 * @author BigData * */ @SpringBootTest public class GoodsDaoTests { @Autowired private GoodsDao goodsDao; /** * 查詢用戶信息 */ @Test public void testFindAll() { //調用dao層的查詢方法 List<User> findAll = goodsDao.findAll(); //遍歷集合 for (User user : findAll) { System.out.println(user); } } }
通過上面的步驟,如今就實現了SpringBoot和MyBatis的整合!!!
假如程序有報錯,請參考下面文章!!!
SpringBoot項目實踐過程當中遇到過哪些問題?api