hibernate总结

hibernate主要用于连接数据,是基于ORM的持久层框架。

持久层:用于操作数据库。

ORM(object relation map):对象关系映射。

hibernate的基本步骤:

三拷三配:拷JDBC驱动,拷log4j,拷hibernate开发包

     配pojo对象,配映射文件,配总的配置文件。

注意:在hibernate中时间date统一用util包中的。

单表操作配置映射文件:

<hibernate-mapping>
<!-- 类和表的映射 -->
 <class name="com.pojo.Student" table="student">
 <!-- 字段映射之主键映射 -->
  <id name="sid" column="sid">
   <generator class="native"></generator>
  </id>
  <!-- 其它的字段 -->
  <property name="sname" column="sname"></property>
  <property name="ssex" column="ssex"></property>
 </class>
</hibernate-mapping>

七个步骤:

  1.得到总的配置文件

  2.建立session工厂(sessionFactory)

  3.打开session

  4.开启事物

  5.写HQL语句

  6.事物提交/回滚

  7.关闭session

表:一对多操作

在主表的pojo中要加一个private Set<字表pojo> tname=new HashSet<字表pojo>();

在子表的pojo中要加一个private 主表 name,即添加一个主表对象,用于得到主表主键

在主表映射文件中:

<hibernate-mapping>
 <class name="com.pojo.Dep" table="dep">
  <id name="did" column="did">
   <generator class="native"></generator>
  </id>
  <property name="dname" column="dname"></property>
  <!-- 级联,主表改变字表也改变 -->
  <set name="emps" cascade="save-update,delete">
   <key column="did"></key>
   <one-to-many class="com.pojo.Emp"></one-to-many>
  </set>
 </class>
</hibernate-mapping>

在子表映射文件中:

<hibernate-mapping>
 <class name="com.pojo.Emp" table="emp">
  <id name="eid" column="eid">
   <generator class="native"></generator>
  </id>
  <property name="ename" column="ename"></property>
  <many-to-one name="dep" column="did"></many-to-one>
 </class>
</hibernate-mapping>

表:多对多

映射文件中应该这样写:

<hibernate-mapping>
 <class name="com.pojo.Course" table="couser">
  <id name="cid" column="cid">
   <generator class="native"></generator>
  </id>
  <property name="cname" column="cname"></property>
  <set name="students" table="sc" inverse="false">
   <key column="cid"></key>
   <many-to-many class="com.pojo.Student" column="sid"></many-to-many>
  </set>
 </class>
</hibernate-mapping>

 使用工具代替手工拷包和配置文件

1.让myclipse连接数据库(切换到视图myeclipse database explore视图)

2.添加hibernate开发包(切换到myeclpse jre 视图)

3.生成pojo及映射文件(切换到myeclipse database视图)

4.测试

缓存:一级缓存(session):限自己用

     二级缓存(sessionFactory):大家都可以用

     查询缓存

缓存实为map;一二级缓存就用对象id作为键,查询缓存以HQL语句为键。

原文地址:https://www.cnblogs.com/xinxinjava/p/2860448.html