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