当前位置:   article > 正文

SpringBoot(三)之与mybatis整合_springboot mybatis pom

springboot mybatis pom

喜欢有帮助记得点赞哦

我们之前使用springboot已经可以访问controller和渲染视图,接下来我们来说说连接数据库从数据库中获取数据。这里我们使用springboot与mybatis整合一波。

一、在pom文件中加入mybatis和spring整合依赖以及mysql驱动包

  1. <!-- spring与 mybatis整合依赖 -->
  2. <dependency>
  3. <groupId>org.mybatis.spring.boot</groupId>
  4. <artifactId>mybatis-spring-boot-starter</artifactId>
  5. <version>1.2.0</version>
  6. </dependency>
  7. <!-- mysql数据库驱动包 -->
  8. <dependency>
  9. <groupId>mysql</groupId>
  10. <artifactId>mysql-connector-java</artifactId>
  11. </dependency>

备注:

1)这里我们引入mybatis和spring整合依赖后,mybatis相关的jar包也还自动加载进来,

2)mysql驱动包没有写版本,我们这里使用的springboot是2.1.0自动配置的mysql驱动版本为8.0.13,这里是需要注意的。

二、在application.properties文件中配置数据库连接

  1. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  2. spring.datasource.url=jdbc:mysql://localhost:3306/day11_06?serverTimezone=GMT%2B8
  3. spring.datasource.username=root
  4. spring.datasource.password=root
  5. #读取实体类映射文件
  6. 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层

  1. @Mapper
  2. public interface GoodsMapper {
  3. int addGoods(TbGoods tbGoods);//添加
  4. List<TbGoods> queryAll();//查询所有
  5. }

备注:@Mapper注解作用

1)将该mapper类交给spring管理

2)给该mapper接口生成一个实现类

3)为了不写实体类映射文件,不过我们一般都写

四、映射文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.stt.mapper.GoodsMapper">
  5. <resultMap type="com.stt.pojo.TbGoods" id="goodsMap">
  6. <id column="goods_id" property="goods_id"/>
  7. <result column="goods_name" property="goods_name"/>
  8. <result column="goods_type" property="goods_type"/>
  9. <result column="goods_count" property="goods_count"/>
  10. <result column="goods_price" property="goods_price"/>
  11. <result column="goods_status" property="goods_status"/>
  12. </resultMap>
  13. <insert id="addGoods" parameterType="com.stt.pojo.TbGoods">
  14. INSERT INTO tb_goods (goods_name,goods_type,goods_count,goods_price)
  15. VALUES (#{goods_name},#{goods_type},#{goods_count},#{goods_price})
  16. </insert>
  17. <!-- 查询 -->
  18. <select id="queryAll" resultMap="goodsMap">
  19. SELECT * FROM tb_goods
  20. </select>
  21. </mapper>

五、写service层

  1. @Service
  2. public class GoodsService {
  3. @Resource
  4. private GoodsMapper goodsMapper;
  5. //查询
  6. public List<TbGoods> queryAll(){
  7. return goodsMapper.queryAll();
  8. }
  9. }

六、写controller层

  1. @RestController
  2. public class GoodsController {
  3. @Resource
  4. private GoodsService goodsService;
  5. @RequestMapping("show")
  6. public List<TbGoods> show() {
  7. List<TbGoods> queryAll = goodsService.queryAll();
  8. return queryAll;
  9. }
  10. }

七、测试运行

八、事务

找到你的service实现类,加上@Transactional 注解,如果你加在类上,那该类所有的方法都会被事务管理,如果你加在方法上,那仅仅该方法符合具体的事务。当然我们一般都是加在方法上。因为只有增、删、改才会需要事务

  1. @Service
  2. @Transactional
  3. public class GoodsService {
  4. @Resource
  5. private GoodsMapper goodsMapper;
  6. //查询
  7. public List<TbGoods> queryAll(){
  8. return goodsMapper.queryAll();
  9. }
  10. //添加
  11. public boolean addGoods(TbGoods tbGoods) {
  12. int goods = goodsMapper.addGoods(tbGoods);
  13. int i = 10/0;
  14. int goods2 = goodsMapper.addGoods(tbGoods);
  15. return (goods>0&&goods2>0)?true:false;
  16. }
  17. }

至此我们使用springboot整合mybatis和使用事务就已经演示完毕,希望可以帮到各位读者。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/41989
推荐阅读
相关标签
  

闽ICP备14008679号