Hibernate学习2之继承映射与C3P0连接池
一、继承映射的需要
关系数据库的表之间不存在继承关系,
但为了将面向对象中的继承关系映射到关系数据库中,
可以使用以下三种继承映射策略:
-每个继承层次一张表
-每个具体类一张表
-每个类一张表。
二、对比
--每个继承层次一张表:
(优点)最简单、执行效率最高(因为无需进行任何关联操作)
(缺点)存在冗余字段;在数据表中需要加入额外的区分各个类的字段;
同时不允许为子类成员属性对应的字段定义为not null约束。
--每个具体类一张表:
(优点)数据结构清晰,且可以对子类成员属性映射的字段定义not null 约束
(缺点)子表的主键不能重复,不能使用数据库的自增方式生成主键
--每个子类一张表:
(优点)数据结构层次清晰,没有冗余,且可以对子类的成员属性映射的字段定义not null约束
(缺点)类的继承层次比较多时,需要关联的表也越多查询性能不如每个继承构成一张表
三、c3p0连接池
--连接池的需要:直接向数据库申请、释放连接时要降低性能的,因为不适用连接池,
那么每一次数据访问请求都必须经历创建数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,
而连接并打开数据库是一件即消耗资源又费时的工作,当频繁发生数据库操作时,就会导致系统性能的急剧下降,
所以需要连接池这个代理。(参考:http://blog.csdn.net/msg_java2011/article/details/6682351)
--数据库连接池的主要操作:
1.建立数据库连接池对象(服务器启动)
2.
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。