学完Hibernate要掌握的东西:
本章要掌握的东西:
DAO层JDBC回顾:
JDBC缺点:
持久化层:
ORM:
hibernate.cfg.xml:
分析:
手动搭建第一步,建web工程:
下载需要的jar包:
hibernate.cfg.xml文件创建start:
hibernate.cfg.xml文件创建end:
对hibernate.cfg.xml文件内容的书写start:
对hibernate.cfg.xml文件内容的书写end:
建立实体po类:
创建实体映射文件start:
创建实体映射文件end:
在hibernate.cfg.xml文件中配置我们创建的实体映射文件:
测试七步曲:
以下是演示代码:
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.Oracle9Dialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@127.0.0.1:1521:orcl
</property>
<property name="connection.username">lfl</property>
<property name="connection.password">lfl</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<mapping resource="com/zuxia/yc42/po/UserInfo.hbm.xml"/>
</session-factory>
</hibernate-configuration>
UserInfo:
package com.zuxia.yc42.po;
import java.io.Serializable;
public class UserInfo implements Serializable
{
private Integer usId;
private String usName;
private String usSex;
private Integer usAge;
private String usPass;
public Integer getUsId() {
return usId;
}
public void setUsId(Integer usId) {
this.usId = usId;
}
public String getUsName() {
return usName;
}
public void setUsName(String usName) {
this.usName = usName;
}
public String getUsSex() {
return usSex;
}
public void setUsSex(String usSex) {
this.usSex = usSex;
}
public Integer getUsAge() {
return usAge;
}
public void setUsAge(Integer usAge) {
this.usAge = usAge;
}
public String getUsPass() {
return usPass;
}
public void setUsPass(String usPass) {
this.usPass = usPass;
}
}
UserInfo.hbm.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!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.zuxia.yc42.po.UserInfo" table="USER_INFO" schema="LFL">
<id name="usId" type="java.lang.Integer">
<column name="USID" precision="38" scale="0" />
<generator class="sequence">
<param name="sequence">user_seq</param>
</generator>
</id>
<property name="usName" type="java.lang.String">
<column name="USNAME" length="20" unique="true" />
</property>
<property name="usPass" type="java.lang.String">
<column name="USPASS" length="32" />
</property>
<property name="usAge" type="java.lang.Integer">
<column name="USAGE" precision="38" scale="0" />
</property>
<property name="usSex" type="java.lang.String">
<column name="USSEX" length="1" />
</property>
</class>
</hibernate-mapping>
Demo:
package com.zuxia.yc42.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.zuxia.yc42.po.UserInfo;
public class Demo {
/**
* @param args
*/
public static void main(String[] args)
{
//1.加载配置文件
Configuration cfg = new Configuration().configure("/hibernate.cfg.xml");
//2.创建SessionFactory类
SessionFactory factory = cfg.buildSessionFactory();
//3.通过SessionFactory类获取Session对象
Session session = factory.openSession();
//4.通过Session对象打开事务
Transaction tx = session.beginTransaction();
//5.通过Session对象操作数据表
UserInfo usInfo = (UserInfo) session.get(UserInfo.class, 1);
System.out.println(usInfo.getUsName()+"\t"+usInfo.getUsSex());
//6.提交事务
tx.commit();
}
}