首页 > 代码库 > Hibernate学习2之继承映射与C3P0连接池
Hibernate学习2之继承映射与C3P0连接池
一、继承映射的需要
关系数据库的表之间不存在继承关系,
但为了将面向对象中的继承关系映射到关系数据库中,
可以使用以下三种继承映射策略:
-每个继承层次一张表
-每个具体类一张表
-每个类一张表。
二、对比
--每个继承层次一张表:
(优点)最简单、执行效率最高(因为无需进行任何关联操作)
(缺点)存在冗余字段;在数据表中需要加入额外的区分各个类的字段;
同时不允许为子类成员属性对应的字段定义为not null约束。
--每个具体类一张表:
(优点)数据结构清晰,且可以对子类成员属性映射的字段定义not null 约束
(缺点)子表的主键不能重复,不能使用数据库的自增方式生成主键
--每个子类一张表:
(优点)数据结构层次清晰,没有冗余,且可以对子类的成员属性映射的字段定义not null约束
(缺点)类的继承层次比较多时,需要关联的表也越多查询性能不如每个继承构成一张表
三、c3p0连接池
--连接池的需要:直接向数据库申请、释放连接时要降低性能的,因为不适用连接池,
那么每一次数据访问请求都必须经历创建数据库连接、打开数据库、存取数据和关闭数据库连接等步骤,
而连接并打开数据库是一件即消耗资源又费时的工作,当频繁发生数据库操作时,就会导致系统性能的急剧下降,
所以需要连接池这个代理。(参考:http://blog.csdn.net/msg_java2011/article/details/6682351)
--数据库连接池的主要操作:
1.建立数据库连接池对象(服务器启动)
2.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。