首页 > 编程 > JSP > 正文

手工hibernate程序简单示例

2024-09-05 00:18:24
字体:
来源:转载
供稿:网友

本文主要介绍了手工hibernate程序简单示例,小编以实例的形式为大家分析了简单hibernate程序的实现技巧,感兴趣的朋友们来看看吧。

首先创建数据库表:

复制代码 代码如下:
create table increment_testr(id bigint not null, name char(10), primary key(id));

 

eclipse下,新建工程。

新建数据库表的映射,这里使用手工方式完成:

IncrementTester.java

public class IncrementTester {  private Long id;  private String name;  public IncrementTester(){}  public IncrementTester(String name){    this.name = name;  }  public Long getId(){    return this.id;  }  private void setId(Long id){    this.id = id;  }  public String getName(){    return this.name;  }  public void setName(String name){    this.name = name;  }}

对应编写映射xml文件

IncrementTester.hbm.xml

PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
private

实现具体功能的类BussinessService

import java.lang.reflect.*;import org.hibernate.*;import org.hibernate.cfg.*;import java.io.*;import java.sql.*;import java.util.*;public class BussinessService {  public static SessionFactory sessionFactory;  static{    try{      Configuration config = new Configuration().configure();      sessionFactory = config.buildSessionFactory();    }catch(Exception e){      e.printStackTrace();    }  }  public void findAllObjects(String className){    Session session = sessionFactory.openSession();    Transaction tx = null;    try{      tx = session.beginTransaction();      List objects = session.createQuery("from "+className).list();      for(Iterator it = objects.iterator();it.hasNext();){        Long id = new Long(0);        IncrementTester xx = (IncrementTester)it.next();        id=xx.getId();        System.out.println("ID of "+className+":"+id+" name: "+xx.getName());      }      tx.commit();    }catch(Exception e){      e.printStackTrace();    }finally{      session.close();    }  }  public void saveObject(Object object){    Session session = sessionFactory.openSession();    Transaction tx = null;    try{      tx = session.beginTransaction();      session.save(object);      tx.commit();    }catch(Exception e){      e.printStackTrace();      if(tx != null){        tx.rollback();      }    }finally{      session.close();    }  }  public void deleteAllObject(String className){    Session session = sessionFactory.openSession();    Transaction tx = null;    try{      tx = session.beginTransaction();      Query query=session.createQuery("delete from "+className);      query.executeUpdate();      tx.commit();    }catch(Exception e){      e.printStackTrace();      if(tx!=null){        tx.rollback();      }    }finally{      session.close();    }  }}

实现主函数:

public class test {  /**   * @param args   */  public static void main(String[] args) {    // TODO Auto-generated method stub    String name="IncrementTester";    BussinessService aa = new BussinessService();    aa.deleteAllObject(name);    Object o1 = null;    try {      o1 = Class.forName(name).newInstance();      ((IncrementTester)o1).setName("caijie");      aa.saveObject(o1);      o1 = Class.forName(name).newInstance();      ((IncrementTester)o1).setName("gufeng");      aa.saveObject(o1);    } catch (Exception e) {      e.printStackTrace();    }    aa.findAllObjects(name);  }}

hibernate配置文件:hibernate.cfg.xml
 
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
org.hibernate.dialect.MySQLDialect
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/test
root
root
true

增加相应的库,运行后成功得到结果:

Hibernate: delete from INCREMENT_TESTRHibernate: select max(ID) from INCREMENT_TESTRHibernate: insert into INCREMENT_TESTR (NAME, ID) values (?, ?)Hibernate: insert into INCREMENT_TESTR (NAME, ID) values (?, ?)Hibernate: select incrementt0_.ID as ID0_, incrementt0_.NAME as NAME0_ from INCREMENT_TESTR incrementt0_ID of IncrementTester:1 name: caijieID of IncrementTester:2 name: gufeng以上就是手工hibernate程序简单示例,希望本文所述对大家的JSP程序设计有所帮助。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表