喜欢有帮助记得点赞哦
我们之前使用springboot已经可以访问controller和渲染视图,接下来我们来说说连接数据库从数据库中获取数据。这里我们使用springboot与mybatis整合一波。
一、在pom文件中加入mybatis和spring整合依赖以及mysql驱动包
<!-- spring与 mybatis整合依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!-- mysql数据库驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
备注:
1)这里我们引入mybatis和spring整合依赖后,mybatis相关的jar包也还自动加载进来,
2)mysql驱动包没有写版本,我们这里使用的springboot是2.1.0自动配置的mysql驱动版本为8.0.13,这里是需要注意的。
二、在application.properties文件中配置数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/day11_06?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
#读取实体类映射文件
mybatis.mapper-locations=classpath:com/zhiyou100/pojo/*.xml
备注:
1)发现我们这里使用的mysql驱动类明显与之前不一样,在mysql-connector-java用的6.0以上com.mysql.jdbc.Driver被弃用,我们需要使用com.mysql.cj.jdbc.Driver
2)url后边发现我们连接了一个serverTimezone=GMT%2B8,是因为我们在使用连接数据库时会出现下图问题,原因是mysql返回的时间总是有问题,比实际时间要早8小时,在url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8
三、完成Dao层
@Mapper
public interface GoodsMapper {
int addGoods(TbGoods tbGoods);//添加
List<TbGoods> queryAll();//查询所有
}
备注:@Mapper注解作用
1)将该mapper类交给spring管理
2)给该mapper接口生成一个实现类
3)为了不写实体类映射文件,不过我们一般都写
四、映射文件
<?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.stt.mapper.GoodsMapper">
<resultMap type="com.stt.pojo.TbGoods" id="goodsMap">
<id column="goods_id" property="goods_id"/>
<result column="goods_name" property="goods_name"/>
<result column="goods_type" property="goods_type"/>
<result column="goods_count" property="goods_count"/>
<result column="goods_price" property="goods_price"/>
<result column="goods_status" property="goods_status"/>
</resultMap>
<insert id="addGoods" parameterType="com.stt.pojo.TbGoods">
INSERT INTO tb_goods (goods_name,goods_type,goods_count,goods_price)
VALUES (#{goods_name},#{goods_type},#{goods_count},#{goods_price})
</insert>
<!-- 查询 -->
<select id="queryAll" resultMap="goodsMap">
SELECT * FROM tb_goods
</select>
</mapper>
五、写service层
@Service
public class GoodsService {
@Resource
private GoodsMapper goodsMapper;
//查询
public List<TbGoods> queryAll(){
return goodsMapper.queryAll();
}
}
六、写controller层
@RestController
public class GoodsController {
@Resource
private GoodsService goodsService;
@RequestMapping("show")
public List<TbGoods> show() {
List<TbGoods> queryAll = goodsService.queryAll();
return queryAll;
}
}
七、测试运行
八、事务
找到你的service实现类,加上@Transactional 注解,如果你加在类上,那该类所有的方法都会被事务管理,如果你加在方法上,那仅仅该方法符合具体的事务。当然我们一般都是加在方法上。因为只有增、删、改才会需要事务
@Service
@Transactional
public class GoodsService {
@Resource
private GoodsMapper goodsMapper;
//查询
public List<TbGoods> queryAll(){
return goodsMapper.queryAll();
}
//添加
public boolean addGoods(TbGoods tbGoods) {
int goods = goodsMapper.addGoods(tbGoods);
int i = 10/0;
int goods2 = goodsMapper.addGoods(tbGoods);
return (goods>0&&goods2>0)?true:false;
}
}
至此我们使用springboot整合mybatis和使用事务就已经演示完毕,希望可以帮到各位读者。