视频地址:http://edu.51cto.com/course/course_id-431.html
需要的软件:
HibernateOrm 4.1.9.Final : http://download.csdn.net/download/mr__fang/5071223
Mysql 数据库驱动包 : http://download.csdn.net/detail/cyw_123/5164876
简单Hibernate应用的创建过程:
S1 : 创建一个Java工程HibernateDemo1
S2:导入Hibernate基本包。
1,新建lib文件夹。
2,下载好的orm包中的required中的所有jar文件复制到lib
S3: 导入数据库驱动包。将下载的mysql驱动jar放入lib文件夹
S4 :右键lib,buildPath,将包添加到工程中
S5 :新建持久化类Person.java:
package org.fkjava.pojo;
/**
* 持久化类
* 注意:
* 通常建议有一个持久化标示符(ID)
* 持久化标示符通常建议使用封装类(基本类型有默认值)
* 持久化类通常建议手动给定一个无惨构造器(因为一一些操作通过反射进行)
* 属性通常建议提供getset方法
* 持久化类不能是final
* 持久化类中如果使用了集合类型数据,只能使用接口类型进行声明(List/set/map)
* List list=new ArrayList():
* @author sc
*/
import java.util.Date;
public class Person {
private Integer id;
private String name;
private int password;
private Date birthday;
public Person(){}
public Person(String name, int password, Date birthday) {
super();
this.name = name;
this.password = password;
this.birthday = birthday;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", password=" + password
+ ", birthday=" + birthday + "]";
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
S6: 新建持久化类对应的持久化配置文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<class name="org.fkjava.pojo.Person" table="t_person">
<id name="id">
<generator class="native"/>
</id>
<property name="name" column="t_name"/>
<property name="password" length="6"/>
<property name="birthday" type="date"/>
</class>
</hibernate-mapping>
S7:新建Hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="foo">
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate_db</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping resource="org\fkjava\pojo\Person.hbm.xml"/>
</session-factory>
</hibernate-configuration>
注意要在mysql数据库中建立对应的数据库hibernate_db
S8: 编写测试类HibernateTest.javapackage org.fkjava.pojo;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class HibernateTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//获得hibernate。cfg.xml中的配置
Configuration config = new Configuration().configure();
//获得连接工厂
//通常对应一个数据库,通常一个应用程序只有一个,在启动的时候创建就可以了
//线程安全
SessionFactory factory= config.buildSessionFactory();
//获得session,session是hibernate的核心api,其他的增删改查都是通过session完成的
//session相当于一次数据库表的操作
//非线程安全
Session session = factory.openSession();
//hibernate中增删改需要事务的支持,查询不用
Transaction tx = session.beginTransaction();
Person p = new Person("admin",123456,new java.util.Date());
//将persion对象持久化到数据库
session.save(p);
//提交失误
tx.commit();
//关闭session,
session.close();
//关闭sessionfactory,通常不用手动关闭
factory.close();
}
}
S9: 运行,可见将该类持久化到了数据库中