现在的位置: 首页 > 综合 > 正文

第一个简单实用的Hibernate小程序(没按套路出牌,先运行起一个例子来看看)

2013年10月04日 ⁄ 综合 ⁄ 共 4340字 ⁄ 字号 评论关闭

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("-------操作成功--------");
 }
}

抱歉!评论已关闭.