IDE : MyEclipse6.0 +JDK1.6
1 先配置hibernate环境:把下载的hibernate-3.1.GA.org 包中的hibernate3.jar及lib文件夹下的所有jar包用Java Biuld Path导入,同时导入oracle驱动程序(如果是其它数据库则导入想应的驱动包)
2 在下载的hibernate包中找到hibernate.cfg.xml文件复制到src根目录下,
3 接下来就可以建立POJO类了,完成后再配置*.hbm.xml(注意*一般用的是POJO的类名)映射文件.
4接下来就可以写操作类了(此处没单独建立工厂)
具体代码如下:
数据库中表的创建代码是:
CREATE TABLE person(
id varchar(32) PRIMARY KEY,
name varchar(40) NOT NULL.
password varchar(32) NOT NULL;
sex varchar(40);
email varchar(32)
);
hibernate.cfg.xml代码:
<!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="hibernate.connection.url">
jdbc:oracle:thin:@localhost:1521:ORCL<!-- 注意这里不能用localhost啊 ,这里的localhost最好换成自己的IP-->
</property>
<property name="hibernate.connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="hibernate.connection.username">ORCLUSER</property>
<property name="hibernate.connection.password">ad</property>
<property name="hibernate.dialect">
org.hibernate.dialect.OracleDialect
</property>
<mapping resource="org/ycw/hibernate/Person.hbm.xml" />
</session-factory>
</hibernate-configuration>
POJO类代码:
package org.ycw.hibernate;
public class Person {
private String id;
private String name;
private String password;
private String sex;
private String email;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Person.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="org.ycw.hibernate.Person" table="PERSON">
<id name="id" column="id">
<generator class="assigned" ></generator>
</id>
<property name="name" column="name" ></property>
<property name="password" column="password"></property>
<property name="sex" column="sex"></property>
<property name="email" column="email" ></property>
</class>
</hibernate-mapping>
PersonOperate.java代码:
package org.ycw.hibernate;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class PersonOperate {
Session session = null;
public PersonOperate() {
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
session = sessionFactory.openSession();
}
//插入数据
public void insert(Person p) {
session.save(p);
Transaction tran = session.beginTransaction();
tran.commit();
}
//更改数据
public void update(Person p) {
session.update(p);
Transaction tran = session.beginTransaction();
tran.commit();
}
//查询数据
public Person queryById(String id) {
Person p = null;
String hql = "FROM Person as p WHERE p.id = ?";
Query query = session.createQuery(hql);
query.setString(0, id);
List list = query.list();
Iterator it = list.iterator();
while(it.hasNext()) {
p = (Person)it.next();
}
return p;
}
//删除数据
public void delete(String id) {
String hql = "DELETE Person WHERE id = ? ";
Query query = session.createQuery(hql);
//设置参数
query.setString(0, id);
//执行更新语句
query.executeUpdate();
//进入事务处理
session.beginTransaction().commit();
}
//查询全部数据
public List queryAll() {
List list = null;
String hql = "FROM Person as p";
Query query = session.createQuery(hql);
list = query.list();
return list;
}
}
OperateClass.java 代码:
package org.ycw.hibernate;
import java.util.Iterator;
import java.util.List;
public class OperateClass {
public static void main(String[] args) {
Person p = new Person();
p.setId("03");
p.setName("小孔");
p.setPassword("fsa");
p.setSex("男");
p.setEmail("pingkong@126.com");
PersonOperate po = new PersonOperate();
po.insert(p);
// Person p = po.queryById("01");
// System.out.println(p.getName());
// po.delete("01");
// List list = po.queryAll();
//Iterator it = list.iterator();
// while(it.hasNext()) {
//System.out.println(((Person)it.next()).getId());
}
System.out.println("-------操作成功--------");
}
}