Hibernate学习体会

1# 最重要的三个配置文件
最终我们都需要hibernate.properties,hibernate.cfg.xml,Persistence.xml三个配置文件
hibernate.properties:用来在服务器端(Tomcat)配置的一个文件,可以填写数据库的配置信息和一些服务器信息,
 注:在star里面我用了context.xml,实际上是一样的,在程序起来的时候configurantion这个class照样会去读这样的一个配置文件
hiberante.cfg.xml:实际上此文件是properties的升级版,在Hiberante2的时候这些配置都写在properties里,重点是hibernate.cfg.xml里要 

           指定mapping的persistence的这个配置文件是哪个。
persistence.xml:最重要的配置文件,用来持久化POJO对象,描述对象之间的关系以及与RDB之间的关系
 注:这三个配置文件分别被读取的顺序是hibernate.properties-->hibernate.cfg.xml-->Persistence.xml
 在Configuration被new出来后就开始这个执行流程

2#一个典型的hibernate.properties配置文件如下:
 hibernate.dialect net.sf.hibernate.dialect.MySQLDialect
 hibernate.connection.driver_class org.gjt.mm.mysql.Driver
 hibernate.connection.driver_class com.mysql.jdbc.Driver
 hibernate.connection.url jdbc:mysql:///sample
 hibernate.connection.username user
 hibernate.connection.password mypass 

3#一个典型的hibernate.cfg.xml 配置文件如下
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"
http://hibernate.sourceforge.net/hibernate-configuration-2.0.
dtd">
<hibernate-configuration>
<!—- SessionFactory 配置 -->
<session-factory>
<!—- 数据库URL -->
<property name="hibernate.connection.url">
jdbc:mysql://localhost/sample
</property>
<!—- 数据库JDBC驱动 -->
<property name="hibernate.connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<!—- 数据库用户名 -->
<property name="hibernate.connection.username">
User
</property>
<!—- 数据库用户密码 -->
<property name="hibernate.connection.password">
Mypassword
</property>
<!--dialect ,每个数据库都有其对应的Dialet以匹配其平台特性 -->
<property name="dialect">
net.sf.hibernate.dialect.MySQLDialect
</property>
<!—- 是否将运行期生成的SQL输出到日志以供调试 -->
<property name="hibernate.show_sql">
True
</property>
<!—- 是否使用数据库外连接 -->
<property name="hibernate.use_outer_join">
True
</property>
<!—- 事务管理类型,这里我们使用JDBC Transaction -->
<property name="hibernate.transaction.factory_class">
net.sf.hibernate.transaction.JDBCTransactionFactory
</property>
<!—映射文件配置,注意配置文件名必须包含其相对于根的全路径 -->
<mapping resource="net/xiaxin/xdoclet/TUser.hbm.xml"/>
<mapping resource="net/xiaxin/xdoclet/TGroup.hbm.xml"/>
</session-factory>
</hibernate-configuration>


4# 最重要的三个class
Hibernate的基础语义
 =====================
 configuration
 =====================
 正如其名,Configuration 类负责管理Hibernate 的配置信息。Hibernate 运行时需要
 获取一些底层实现的基本信息,其中几个关键属性包括:
 1. 数据库URL
 2. 数据库用户
 3. 数据库用户密码
 4. 数据库JDBC驱动类
 5. 数据库dialect,用于对特定数据库提供支持,其中包含了针对特定数据库特性
   的实现,如Hibernate数据类型到特定数据库数据类型的映射等。
 <-这一信息由hibernate.cfg.xml来配置-> 
 
 =====================
 Session Factory
 =====================
 SessionFactory 负责创建Session 实例。我们可以通过Configuation 实例构建SessionFactory:
 Configuration config = new Configuration().Configure();
 SessionFactory sessionFactory =  config.buildSessionFactory();
 
 =====================
 Session
 =====================
 Session是持久层操作的基础,相当于JDBC中的Connection:
 实例通过SessionFactory实例构建:
 
 Configuration config = new Configuration().configure();
 SessionFactory sessionFactory = config.buildSessionFactory();
 Session session = sessionFactory.openSession();
 
 之后我们就可以调用Session所提供的save、find、flush等方法完成持久层操作。
 flush的方法来强制数据库的同步:
  --在事务提交的时候,
  --另外当Session关闭时,也会自动执行flush方法
  hibernate自动会执行flush方法。


5#Hibernate异步地执行SQL语句,通常调用Session.save()时并不会执行INSERT语句,
  当调用Item.addBid()时也不会立即执行UPDATE语句。
  通常SQL语句都在事务终点执行,这种行为称为写后置,

6# 最重要的业务对象
 最重要也是最简单的步骤,对Hibernate而言,给用户带来的最大的好处是不用关心何种JDBC以何种方言或方式去和底层的RDB(关系数据库)
沟通,配置文件准备完成后,应该把焦点放在真正的业务对象上,也即需要存储的对象上,需要注意的是,和普通的java类不同的是这个类里

面需要一个ID作为此对象在RDB里做主键。

此Hibernate是结合struts一起使用的,感觉搭配很协调。

关于Struts,顺便在这里提一下:实际上就是一个MVC的pattern,只不过struts用一些libabry和一些自己的tag

进行了封装,用起来还是比较方便的,能够充分的体现出框架带来的效果和特色,最大的难点就是写一些适合自己的tag lib出来,写这个之前的话,要根据项目做好结构分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值