赞
踩
喜欢有帮助记得点赞哦
我们之前使用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和使用事务就已经演示完毕,希望可以帮到各位读者。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。