MyBatis概述:
mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statemenet等繁杂的过程。
在当今的互联网应用中项目,mybatis框架通常会由spring框架进行资源整合,作为数据层技术实现数据交互操作。
准备工作
1.创建一个Spring Starter Project工程
1.1添加依赖
1.2 修改版本
31.3 创建后的工程项目结构
2.添加Maven依赖
`<!-- 添加mybatis starter依赖(SpringBoot 工程下提供了mybatis的自动配置) -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>`
3.mysql表
复制下面内容,创建数据库和数据表:
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);
4.创建配置文件
4.1 配置连接信息
在application.properties中添加配置信息:
# 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>
5.创建所需的包和项目
编写程序
1.User工具类
User工具类用于封装用户信息
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 + "]";
}
}
2.编写GoodsMapper.xml配置文件实现查询功能
将下面内容复制到<mapper></mapper>之间:
<mapper namespace="com.cy.pj.goods.dao.GoodsDao">
<select id="findAll" resultType="com.cy.pj.goods.utils.User">
select * from emp
</select>
</mapper>
3.编写GoodsDao接口
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();
}
4.编写测试类
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项目实践过程中遇到过哪些问题?
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。