SpringBoot(三)SpringBoot整合MyBatis
2020-08-19 本文已影响0人
小小土豆dev
Spring框架常用注解简单介绍
SpringMVC常用注解简单介绍
SpringBoot(一)创建一个简单的SpringBoot工程
SpringBoot(二)SpringBoot多环境配置
SpringBoot(三)SpringBoot整合MyBatis
SpringBoot(四)SpringBoot整合 Redis
MyBatis是什么?
MyBatis是一个持久层框架,是 apache 下的一个顶级项目。MyBatis让程序员将主要精力放在 sql 上,通过MyBatis提供的映射方式,自由灵活生成满足需求的 sql 语句。
MyBatis可以向 PreparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成 Java对象(输出映射)。
MyBatis使用步骤:
- 在pom.xml文件中配置MyBatis依赖:
<!-- mybatis整合springboot依赖,父级标签中没有指定mybatis,所以需要版本号 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!-- mysql的jdbc驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
- 修改application.properties文件,配置数据库(一般我们会在对应环境的配置文件中,配置不同的数据库)
# 配置MyBatis的Mapper.xml文件所在路径
mybatis.mapper-locations=mappers/*.xml
#DB Configuration:
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/bookstore
spring.datasource.username=root
spring.datasource.password=12345678
数据库建表语句
首先我们在本地安装MySQL数据库,然后执行下面的SQL:
CREATE TABLE `book` (
`bid` char(32) NOT NULL AUTO_INCREMENT,
`bname` varchar(100) NOT NULL,
`price` decimal(5,1) DEFAULT NULL,
`author` varchar(100) DEFAULT NULL,
`image` varchar(200) DEFAULT NULL,
PRIMARY KEY (`bid`),
KEY `cid` (`cid`)
)
INSERT INTO `book`(`bname`, `price`, `author`, `image`) VALUES ('C语言从入门到精通 精粹版', 39.6, '梁义涛 /2018-08-01 /人民邮电出版社', 'book_img/C.jpg');
-
创建Mapper文件
ProductMapper
@Mapper
public interface ProductMapper {
Product selectById(String id);
}
-
创建Mapper对应的xml文件
WX20200520-183447.png
<?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.springbootdemo.dao.ProductMapper" >
<select id="selectById" parameterType="java.lang.String" resultType="com.springbootdemo.entity.Product" >
select bid, bname, price, author, image
from book
where bid = #{id}
</select>
</mapper>
- 修改service改成从Mapper访问数据库
@Service("iProductService")
public class ProductServiceImpl implements IProductService {
@Autowired
ProductDao productDao;
@Autowired
private ProductMapper productMapper;
@Override
public Product getProductById(String id) {
// return productDao.getProductById(id);
// 改成mybatis从数据库获取数据
return productMapper.selectById(id);
}
}
启动工程,然后打开打开浏览器输入:http://localhost:8081/springbootdemo/product/1
返回:
{
"bid": "1",
"bname": "C语言从入门到精通 精粹版",
"price": 39.6,
"author": "梁义涛 /2018-08-01 /人民邮电出版社",
"image": "book_img/C.jpg"
}