SpringBoot(三)之与mybatis整合

喜欢有帮助记得点赞哦

我们之前使用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和使用事务就已经演示完毕,希望可以帮到各位读者。

发布了23 篇原创文章 · 获赞 49 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_36386908/article/details/84304686