Hibernate知识点总结
2021-07-14 11:05
标签:创建表 update 统计 factor 基于 factory 步骤 tac ssi Hibernate知识点总结 标签:创建表 update 统计 factor 基于 factory 步骤 tac ssi 原文地址:http://www.cnblogs.com/hackxiyu/p/7076285.html一、 Hibernate
1 Hibernate 简化JDBC (ORM)
使用Hibernate的步骤
1 将第三方包加入到项目当中
2 编写核心配置文件 hibernate.cfg.xml
xml version=‘1.0‘ encoding=‘UTF-8‘?>
DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
hibernate-configuration>
session-factory>
property name="dialect">org.hibernate.dialect.Oracle9Dialectproperty>
property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orclproperty>
property name="connection.username">martproperty>
property name="connection.password">javaproperty>
property name="connection.driver_class">oracle.jdbc.driver.OracleDriverproperty>
property name="hbm2ddl.auto">updateproperty>
property name="show_sql">trueproperty>
session-factory>
hibernate-configuration>
3 编写实体类
public class User implements Serializable{
private Integer id; //ID Hibernate要求每个实体都必须有一个主键
private String uname;
private String gender;
private Integer age;
.... 省略get/set方法
}
4 编写实体类对应的映射文件 User.hbm.xml
xml version="1.0"?>
DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
hibernate-mapping>
class name="com.zhaolong.bean.User" table="HUQB_USER">
id name="id">
generator class="sequence">
param name="sequence">SEQ_HUQB_USERparam>
generator>
id>
property name="uname" column="HUQB_UNAME"/>
property name="gender"/>
property name="age">
column name="HUQB_AGE" not-null="true">column>
property>
class>
hibernate-mapping>
5 将实体类的映射文件,添加到核心配置文件当中
xml version=‘1.0‘ encoding=‘UTF-8‘?>
DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
hibernate-configuration>
session-factory>
...省略基础配置信息
mapping resource="com/zhaolong/bean/User.hbm.xml"/>
session-factory>
hibernate-configuration>
6 使用Hibernate实现增删改查
//加载配置文件
Configuration cfg=new Configuration();
cfg.configure();
//创建SessionFactory
SessionFactory fatory = cfg.buildSessionFactory();
//获取session
Session session = fatory.openSession();
//打开事物
Transaction tx = session.beginTransaction();
//执行增删改查操作
User u=new User();
u.setUname("张三");
u.setGender("男");
u.setAge(22);
session.save(u);
//提交事务
tx.commit();
//关闭session
session.close();
2 Hibernate 表与表之间关系映射
1对多
1 java类当中要有一个Set属性
2 映射文件通过Set标签进行配置
多对1
1 java类当中要有一个关联需要的属性
2 映射文件当中通过many-to-one>标签进行配置
1对1
1 java类当中要有一个关联需要的属性
2 映射文件当中通过one-to-one>标签进行配置
映射文件当中通过many-to-one unique=true> 指定唯一
多对多
1 java类当中要有一个Set属性
2 映射文件通过Set标签进行配置
注意:多对多映射会生成第三张映射表
3 Hibernate查询
1 HQL 基于对象的查询语言
将sql当中的表名修改成对象名 将sql当中列名修改成属性名
2 Criteria 面向对象的查询
Restrictions 添加限制条件
Projections 聚合查询
Projections.projectionList() 添加多个统计结果
3 DetachedCriteria 离线查询
4 Hibernate缓存
1 一级缓存 session
2 二级缓存 SessionFactory (需要配置)
3 查询缓存
5 其他信息
inverse
cascade
lazy