持久层是专注于持久化的一个层次。持久化就是把对象数据转化成可以存储在存储设备中保存的步骤。
持久化的一种实现就是orm框架。ORM(object rational mapping)对象关系映射主要思想就是把model数据与关系型数据库中的表映射起来,不需要写原生的sql语句就可以实现对数据的操作。
框架和数据库的关系是什么呢?一句话概括,就是持久层框架是通过orm实现持久化的,直接操作数据库的数据。
ORM框架有mybatis,hibernate等。这两种框架都可以实现操作关系型数据库,如mysql,sqlserver等。
JPA事实上是一种标准,定义了接口,它的底层实现可以是hibernate或其他(hibernate最重要)。那spring data jpa是什么?它是一种特殊的jpa实现,底层也是用到了hibernate,封装的更好,设定了一些操作语句的样式,只要写这样格式的方法,就可以自动实现相关的数据操作。(这种情况只能是通用的查询条件,他输的操作还得自己写,即使用hibernate)
SpringDataJPA还提供了对NoSql的支持,如mongodb。
关系型数据库和非关系型数据库的区别?
1.关系型数据库要预设表,非关系型数据库不需要。
2.非关系型数据库扩展性更强(例如表的结构可以变)
3.非关系型数据库不好做关联操作,关系型数据库比较擅长