• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    简单的手工hibernate程序示例

    本文讲述了简单的手工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_TESTR
    Hibernate: select max(ID) from INCREMENT_TESTR
    Hibernate: 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: caijie
    ID of IncrementTester:2 name: gufeng
    

    希望本文所述对大家的JSP程序设计有所帮助。

    您可能感兴趣的文章:
    • 详解Java的Hibernate框架中的搜索工具的运用
    • 浅析Java的Hibernate框架中的缓存和延迟加载机制
    • 解析Java的Hibernate框架中的持久化类和映射文件
    上一篇:jsp+jdbc实现连接数据库的方法
    下一篇:jdbc操作mysql数据库实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    简单的手工hibernate程序示例 简单,的,手工,hibernate,程序,