Spring Boot整合持久层

整合持久层就是和数据库打交道,这里以mysql为例。

1.准备工作

首先创建一个数据库和表,代码如下:

Spring Boot整合持久层View Code

然后创建springboot的项目。

2.整合JdbcTemplate

第一步:导入依赖

Spring Boot整合持久层View Code

其中lombok可以导入也可以不导入,这里是为了使用get和set方法方便。

第二步:配置数据源,这里使用的配置文件是application.yml

Spring Boot整合持久层View Code

第三步:创建类Book

Spring Boot整合持久层View Code

第四步:创建类BookController

Spring Boot整合持久层View Code

第五步:创建类BookService

Spring Boot整合持久层View Code

第六步:创建类BookDao

Spring Boot整合持久层View Code

第七步:测试。启动项目,在浏览器输入localhost:8080/book/abbBook即可向数据库添加设定的数据,同理其他的几个接口也可以使用。到这里SpringBoo整合JdbcTemolate已经完成了,至于从前端向controller的接口传递数据,这里暂时不讲。

3.整合MyBatis

 第一步:导入依赖

Spring Boot整合持久层View Code

第二步:类Book,类BookController同上,而BookService中只需把@Autowired中的BookDao改成BookMapper即可,其他同上。

第三步:创建接口BookMapper

Spring Boot整合持久层View Code

第四步:创建BookMapper.xml文件

在资源目录下先创建mapper目录,在目录下创建一个名为BookMapper.xml的文件

Spring Boot整合持久层View Code

第五步:修改yml文件

Spring Boot整合持久层View Code

第六步:启动项目,进行测试,接口可以正常使用。

4.整合Spring Data JPA

 JPA是一种ORM规范,Hibernate是一个ORM框架,因此JPA相当于Hibernate的一个子集。这里只需要有数据库即可,就是要test1数据库,不需要手动创建表,。

第一步:导入依赖

Spring Boot整合持久层View Code

第二步:数据库配置

Spring Boot整合持久层View Code

第三步:创建实体类Book

Spring Boot整合持久层View Code

第四步:创建类BookController

Spring Boot整合持久层View Code

第五步:创建类BookService

Spring Boot整合持久层View Code

第六步:创建接口BookDao

Spring Boot整合持久层View Code

BookDao中没有写方法,原因是jpa中有一些常用的方法。

5.配置多数据源

多数据源就是javaEE项目中采用了不同数据库实例中的 多个库,或者同一个数据库实例中多个不同的库。

1)JdbcTemplate多数据源

第一步:创建两个数据库test1,test2,然后在两个数据库中分别创建一个book,并插入一条不同的内容,创建test1的脚本如下,test2同

Spring Boot整合持久层View Code

第二步:添加依赖

Spring Boot整合持久层View Code

第三步:配置数据库

Spring Boot整合持久层View Code

第四步:配置多数据源

Spring Boot整合持久层View Code

第五步:配置JdbcTemplate

Spring Boot整合持久层View Code

第六步:创建类BookController

为了简单化,这里就直接使用controller来注入JdbcTemplate,在实际开发中需规范化。

Spring Boot整合持久层View Code

第七步:测试

启动项目,在浏览器输入localhost:8080/book/get即可看到查询的两个数据库的所有结果。

2)Mybatis多数据源

第一步:上面已经详细的介绍了一些配置信息,这里就不再赘述。两个数据库同上,数据库配置同上,多数据源配置同上。依赖也只是把Spring-boot-starter-jdbc替换成mybatis的依赖即可,mybatis的依赖如下:

Spring Boot整合持久层View Code

第二步:配置Mybatis

  第一个配置类

Spring Boot整合持久层View Code

  第二个配置类

Spring Boot整合持久层View Code

第三步:在包com.example.demo.dao和com.example.demo.dao2分别创建接口BookMapper和BookMapper2

Spring Boot整合持久层View Code Spring Boot整合持久层View Code

第四步:在上面两个包中分别创建BookMapper.xml,BookMapper2.xml   

Spring Boot整合持久层View Code Spring Boot整合持久层View Code

第五步:创建BookController

Spring Boot整合持久层View Code

第六步:启动项目,进行测试。

6.整合Mybatis出现null

当前端传入的数据给后台,一个对象中有的属性为null时mybatis是不能进行插入操作的,但是需求是这些为null的值得转换为空字符串存入到数据库,其中的一个解决办法如下:

第一步:创建一个类,用于转换类型是字符串,值为null的属性

Spring Boot整合持久层View Code

第二步:在mybatis的BookMapper.xml中修改如下

Spring Boot整合持久层View Code

typeHandler的值是NullValueHandler所在的路径,这样当前台传入的值为null时后台就可以正常插入了。

上一篇:对于ssm整合狂神说中ref的bookMapper爆红解决方法


下一篇:mybatis环境搭建及增删改查