SpringBoot(三)之与mybatis整合

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

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


		
			org.mybatis.spring.boot
			mybatis-spring-boot-starter
			1.2.0
		
		
		
			mysql
			mysql-connector-java
		

备注:

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 queryAll();//查询所有
}

备注:@Mapper注解作用

1)将该mapper类交给spring管理

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

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

四、映射文件




	
		
		
		
		
		
		
		
	
	
	
		INSERT INTO tb_goods (goods_name,goods_type,goods_count,goods_price)
		VALUES (#{goods_name},#{goods_type},#{goods_count},#{goods_price})
	
	
	

五、写service层

@Service
public class GoodsService {

	@Resource
	private GoodsMapper goodsMapper;
	//查询
	public List queryAll(){
		return goodsMapper.queryAll();
	}
}

六、写controller层

@RestController
public class GoodsController {

	@Resource
	private GoodsService goodsService;
	@RequestMapping("show")
	public List show() {
		List queryAll = goodsService.queryAll();
		
		return queryAll;
	}
}

七、测试运行

SpringBoot(三)之与mybatis整合_第1张图片

八、事务

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

@Service
@Transactional
public class GoodsService {

	@Resource
	private GoodsMapper goodsMapper;
	//查询
	public List 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和使用事务就已经演示完毕,希望可以帮到各位读者。

你可能感兴趣的:(Java技术)