无情的你无情的雨 2020-04-23
持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。持久化是将程序数据在持久状态和瞬时状态间转换的机制。JDBC就是一种持久化机制。文件IO也是一种持久化机制。
所谓持久,就是把数据保存到可以永久保持的存储设备当中。一度般来说,持久更为直接的理解就是对数据库的各种操作,如CRUD(增加,删除,修改,查询),更新等操作,持久层知,就是把持久的动作封装成一个独立的层道,这是为了降低功能代码之间的关联。创建一个更清晰的抽象,提高版代码的内聚力,降低代码的耦合度,从而增强代码的要劳权动局生和可重用性。实现持久层的框架有: JDBC, Hibernate,Mybatis,JPA等技术。
在mybatis中数据库没有连接池,每次请求都会重新创建。 mybatis:使用线程池 ;
sql语句是写死在代码中,不利于代码维护。 mybatis:在xml中配置 ;
preparedStatement 中的设置的参数也是写的死,同样不利于维护。 mybatis:在xml中配置 ;
数据从数据库获取后,读取方式同样是写死的。 mybatis:自动映射。
ORM其实最大的好处是对SQL的封装性。原生SQL对于数据库系统的耦合太大,如果使用原生SQL,一旦要把系统部署到不同的数据库上,代码的修改和重构是个很大的麻烦。严格的说ibatis在这方面做得并没有hibernate彻底。但是总比原生JDBC要好。
ORM算是对象化的一种实现(尽管现在看起来越来越臃肿),比如增加和修改的操作,如果用原生SQL,一点不进行封装的话,操作起来还是略麻烦的。