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语句为键。