java

位置:IT落伍者 >> java >> 浏览文章

Hibernate初学之优缺点


发布日期:2018年10月23日
 
Hibernate初学之优缺点
首先比较一下JDBC的优缺点

JDBC的优点

直接底层操作提供了很简单便捷的访问数据库的方法跨平台性比较强灵活性比较强可以写很复杂的SQL语句

JDBC的缺点

因为JAVA是面向对象的JDBC没有做到使数据能够面向对象的编程使程序员的思考仍停留在SQL语句上

操作比较繁琐很多代码需要重复写很多次

如果遇到批量操作频繁与数据库进行交互容易造成效率的下降

Jdbc是一个比较底层的东西 灵活写SQL语句

注册驱动

获得连接

产生一个Statement

进行操作

返回数据ResultSet

new List对象

把ResultSet数据放入List过程中

A a = new A()

asetXXX(rsgetString(xxx))

代码比较繁琐

纯的JDBC是没有缓存的

模型不匹配(阻抗不匹配)

Java面向对象语言对象模型其主要概念有继承关联多态等数据库是关系模型其主要概念有主键外键等

对象模型中对象与对象之间的关联关系与关系模型中数据库表之间的关系无法一一对应

对象模型中对象的继承关系在关系模型中无法直接表示

对象模型中对象的等值性(equals)在关系模型中无法直接实现

对象模型中有关联的对象之间的导航访问在关系模型中无法直接实现

解决办法

使用JDBC手工转换

使用ORM(Object Relation Mapping对象关系映射)框架来解决

Hibernate是一个开源ORM框架

ORM全称Object Relation Mapping即对象关系映射它是一种用来完成对象模型到关系模型的映射技术

就是把应用程序中的对象数据持久化到关系数据库的表的一种技术

使用ORM( Object Relation Mapping )框架来解决主流的ORM框架有JBoss公司的HibernateOracle公司的TopLinkApache组织的OJBSun公司的JDO

简单的说ORM能利用面向对象的思想开放基于关系型数据库的应用程序它的主要工作是将对象数据保存到关系数据库的表中以及将关系数据库表中数据读入到对象中

下载地址使用版本

解压获取必需类库文件

将下载目录/hibernatejar和/lib下的hibernate运行时必须的包加入classpath中

安装配置

配置文件hibernatecfgxml和hibernatepropertiesXML和properties两种这两个文件的作用一样提供一个即可推荐XML格式下载目录/etc下是示例配置文件

可以在配置文件指定

数据库的URL用户名密码JDBC驱动类方言等

启动时Hibernate会在CLASSPATH里找这个配置文件

映射文件(hbmxml对象模型和关系模型的映射)在/eg目录下有完整的hibernate示例

步骤

新建java项目并加入相应的jar包及jdbc驱动

创建持久化类

准备数据库表

创建配置文件 hibernatecfgxml

创建映射文件 xxxhbmxml

创建测试文件

nnectionurl 表示要链接的数据库地址

nnectiondriver_class 表示要链接的数据库的驱动类

nnectionusername 要连接的数据库的用户名

nnectionpassword 要连接的数据库的密码

Hibernatedialect 表示要使用的数据库的类型

orghibernatedialectMySQLDialect mysql数据库

orghibernatedialectOracleDialect oracle数据库

orghibernatedialectSQLServerDialect SQLServer数据库

hibernatehbmddlauto

validate:加载hibernate时验证创建表结构

update:加载hibernate时自动更新数据库结构如果表存在不用创建如果不存在就创建

create:每一次加载hibernate时都创建表结构

createdrop:加载hibernate时创建退出时删除

<hibernatemapping package=comhbsidomain>

<class name=User table=user>

<id name=id>

<generator class = native />

</id>

<property name=name />

<property name=birthday type=datetime />

</class>

</hibernatemapping>

<hibernateconfiguration>

<sessionfactory name=foo>

<property name=nnectiondriver_class>commysqljdbcDriver</property>

<property name=connectionurl>jdbc:mysql:///test</property>

<property name=connectionusername>root</property>

<property name=connectionpassword>root</property>

<property name=dialect>orghibernatedialectMySQLDialect</property>

<property name=connectionpassword>root</property>

<property name=show_sql>true</property>

<property name=hbmddlauto>update</property>

<mapping resource=com/hbsi/domain/Userhbmxml/>

</sessionfactory>

</hibernateconfiguration>

这些都是配置文件还需要创建一个domain类

上一篇:Eclipse使用技巧大全

下一篇:Hibernate 3 Annotations 进阶