整合持久层就是和数据库打交道,这里以mysql为例。
1.准备工作
首先创建一个数据库和表,代码如下:
View Code然后创建springboot的项目。
2.整合JdbcTemplate
第一步:导入依赖
View Code其中lombok可以导入也可以不导入,这里是为了使用get和set方法方便。
第二步:配置数据源,这里使用的配置文件是application.yml
View Code第三步:创建类Book
View Code第四步:创建类BookController
View Code第五步:创建类BookService
View Code第六步:创建类BookDao
View Code第七步:测试。启动项目,在浏览器输入localhost:8080/book/abbBook即可向数据库添加设定的数据,同理其他的几个接口也可以使用。到这里SpringBoo整合JdbcTemolate已经完成了,至于从前端向controller的接口传递数据,这里暂时不讲。
3.整合MyBatis
第一步:导入依赖
View Code第二步:类Book,类BookController同上,而BookService中只需把@Autowired中的BookDao改成BookMapper即可,其他同上。
第三步:创建接口BookMapper
View Code第四步:创建BookMapper.xml文件
在资源目录下先创建mapper目录,在目录下创建一个名为BookMapper.xml的文件
View Code第五步:修改yml文件
View Code第六步:启动项目,进行测试,接口可以正常使用。
4.整合Spring Data JPA
JPA是一种ORM规范,Hibernate是一个ORM框架,因此JPA相当于Hibernate的一个子集。这里只需要有数据库即可,就是要test1数据库,不需要手动创建表,。
第一步:导入依赖
View Code第二步:数据库配置
View Code第三步:创建实体类Book
View Code第四步:创建类BookController
View Code第五步:创建类BookService
View Code第六步:创建接口BookDao
View CodeBookDao中没有写方法,原因是jpa中有一些常用的方法。
5.配置多数据源
多数据源就是javaEE项目中采用了不同数据库实例中的 多个库,或者同一个数据库实例中多个不同的库。
1)JdbcTemplate多数据源
第一步:创建两个数据库test1,test2,然后在两个数据库中分别创建一个book,并插入一条不同的内容,创建test1的脚本如下,test2同
View Code第二步:添加依赖
View Code第三步:配置数据库
View Code第四步:配置多数据源
View Code第五步:配置JdbcTemplate
View Code第六步:创建类BookController
为了简单化,这里就直接使用controller来注入JdbcTemplate,在实际开发中需规范化。
View Code第七步:测试
启动项目,在浏览器输入localhost:8080/book/get即可看到查询的两个数据库的所有结果。
2)Mybatis多数据源
第一步:上面已经详细的介绍了一些配置信息,这里就不再赘述。两个数据库同上,数据库配置同上,多数据源配置同上。依赖也只是把Spring-boot-starter-jdbc替换成mybatis的依赖即可,mybatis的依赖如下:
View Code第二步:配置Mybatis
第一个配置类
View Code第二个配置类
View Code第三步:在包com.example.demo.dao和com.example.demo.dao2分别创建接口BookMapper和BookMapper2
View Code View Code第四步:在上面两个包中分别创建BookMapper.xml,BookMapper2.xml
View Code View Code第五步:创建BookController
View Code第六步:启动项目,进行测试。
6.整合Mybatis出现null
当前端传入的数据给后台,一个对象中有的属性为null时mybatis是不能进行插入操作的,但是需求是这些为null的值得转换为空字符串存入到数据库,其中的一个解决办法如下:
第一步:创建一个类,用于转换类型是字符串,值为null的属性
View Code第二步:在mybatis的BookMapper.xml中修改如下
View CodetypeHandler的值是NullValueHandler所在的路径,这样当前台传入的值为null时后台就可以正常插入了。