Hibernate
ORM(object/Relationship Mapping):对象/关系映射
写SQL语句的坏处:
.不同的数据库使用的SQL语法不同,比如PL/SQL(oracle)与T/SQL(Microsoft)
.同样的功能在不同的数据库中有不同的实现方式。比如分页SQL
.程序过分依赖SQL对程序的移植及扩展,维护等带来很大的麻烦
ORM是一种框架技术
Hibernate是Java领域的一款开源ORM框架技术
Hibernate对JDBC进行了非常轻量级的封装
Hibernate介于业务逻辑层与数据库层之间,属于持久化层。把对象通过Hibernate(对象关系映射)保存到数据库中
其他ORM主流框架:
.Mybatis(apache开发的):前身是iBatis
.TopLink:后被Oracle收购,并重新包装为Oracle AS Toplink
.EJB:本身就是JAVAEE规范(重量级ORM框架,比较复杂)
Hibernate Tools是由JBoss推出的一个Eclipse综合开发工具插件,该插件可以简化ORM框架Hibernate,以及JBoss Seam,EJB3等等开发工作
下载地址:https://sourceforge.net/projects/jboss/files/JBossTools/jbosstools4.2.x/jbosstools-4.2.3.Final_2015-03-26_23-05-30-B264-updatesite-hibernatetools.zip/download?use_mirror=nchc&r=&use_mirror=nchc
Hibernate编写步骤
.创建Hibernate的配置文件(hibernate.cfg.xml)
无Eclipse为出现代码自动提示,需手动导入dtd文件支持
.创建持久化类
.创建对象-关系映射文件
.通过Hibernate API编写访问数据库的代码
.创建Hibernate工程
.导入Hibernate必须的jar包
Hibernate-release-4.2.4.Finale\lib\required
.导入Mysql的JDBC驱动
mysql-connector-java-5.1.7-bin.jar
.导入Junit4的jar包进行单元测试
junit-4.10.jar
1.Hibernate配置文件
<session-factory>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=utf-8</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">create</property>
</session-factory>
2.创建持久化类
.共有的类
.提供共有的不带参数的默认的构造方法
.属性私有
.属性setter/getter封装
3.创建对象-关系映射文件
.创建.hbm.xml文件
Hibernate进阶
hibernate.cfg.xml常用配置
.hibernate.show_sql
是否把Hibernate运行时的SQL语句输出到控制台,编码阶段便于测试
输出到控制台的SQL语句是否进行排版,便于阅读。
.hdm2ddl.auto
可以帮助由java代码生成数据库脚本,进而生成具体的表结构。create|update|create-drop|validate
.hibernate.default_schema
设置默认的数据库
.hibernate.dialect
配置Hibernate数据库方言,Hibernate可针对特定特殊的数据库进行优化
注:hibernate.前缀可省略不写,即hibernate.show_sql等同于show_sql