hibernate增加,删除,修改,查找操作

来源:互联网 发布:淘宝达人大v在哪里认证 编辑:程序博客网 时间:2024/04/28 15:03

//引入导入的hibernate包
import net.sf.hibernate.cfg.Configuration;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Session;
import net.sf.hibernate.Transaction;
import java.util.List;
import com.hygj.bean.Users;
public class HibernateUtil {
    //定义私有变量cfg用来捕获hibernate.cfg.xml配制文件
    private net.sf.hibernate.cfg.Configuration cfg=null;
    //定义变量sf用来管理连接
    private net.sf.hibernate.SessionFactory sf=null;
    //定义session用来实现具体的操作
    private net.sf.hibernate.Session session=null;
    //管理一个用户的多种操作,进行事物的管理
    private net.sf.hibernate.Transaction tr=null; 

    public HibernateUtil() {
      try {
        cfg = new net.sf.hibernate.cfg.Configuration().configure();
        sf=cfg.buildSessionFactory();
      }
      catch (HibernateException ex) {
      }
    }


    //全部查询
    public void chaxun(){
      System.out.println("----chaxun----");
      //产生回话
      try {
        this.sessions = this.sff.openSession();
        session = sf.openSession();
        //开始事务
        this.trs = this.sessions.beginTransaction();
        tr=session.beginTransaction();
        //生成查询
        net.sf.hibernate.Query query=session.createQuery("from Users");
        //获得结果集
        List list=query.list();
        java.util.Iterator it=list.iterator();
        while(it.hasNext()){
          Users user=(Users)it.next();
          System.out.println("id:"+user.getId());
          System.out.println("name:"+user.getUsername());
          System.out.println("password:"+user.getPassword());
          System.out.println("--------");
        }
        //执行完成,提交事务
        tr.commit();
      }
      catch (HibernateException ex) {
      }
      finally{
        try {
          session.close();
        }
        catch (HibernateException ex1) {
        }
      }
    }

    //根据编号查询
    public void chaxun(int id){
      try {
        session = sf.openSession();
        tr=session.beginTransaction();
        //产生查询,需要根据id进行查询
       net.sf.hibernate.Query query=session.createQuery("from Users where id=?");
        // net.sf.hibernate.Query que=session.createQuery("from Users where id=:id");
      //先为参数赋值,再查询
      query.setInteger(0,id);
      //que.setInteger("id",id);
       //List list=que.list();
      List list=query.list();
      //进行空对象验证
      if(list.size()>0){
        Users user=(Users)list.get(0);
        System.out.println("id:"+user.getId());
          System.out.println("name:"+user.getUsername());
          System.out.println("password:"+user.getPassword());
          System.out.println("--------");

      }
      else{
        System.out.println("no record");
      }
      tr.commit();
      }
      catch (HibernateException ex) {
      }
      finally{
        try {
          session.close();
        }
        catch (HibernateException ex1) {
        }
      }

    }

//模糊查询
    public void chaxun(String name){
      try {
        session = sf.openSession();
        tr=session.beginTransaction();
        //产生查询,需要根据id进行查询
       net.sf.hibernate.Query query=session.createQuery("from Users where username like ?");
        // net.sf.hibernate.Query que=session.createQuery("from Users where id=:id");
      //先为参数赋值,再查询
      String str="%"+name+"%";
      query.setString(0,str);
      //que.setInteger("id",id);
       //List list=que.list();
      List list=query.list();
      //进行空对象验证
      if(list.size()>0){
       for(int i=0;i<list.size();i++){
         Users user=(Users)list.get(i);
       System.out.println("id:"+user.getId());
         System.out.println("name:"+user.getUsername());
         System.out.println("password:"+user.getPassword());
         System.out.println("--------");
       }

      }
      else{
        System.out.println("no record");
      }
      tr.commit();
      }
      catch (HibernateException ex) {
      }
      finally{
        try {
          session.close();
        }
        catch (HibernateException ex1) {
        }
      }


    }

//添加数据
    public void add(String name,String pwd){
      try {
        session = sf.openSession();
        tr=session.beginTransaction();
        //实例化新的bean 类
        Users user=new Users();
        //为bean赋值
        user.setUsername(name);
        user.setPassword(pwd);
        //保存提交
        session.save(user);
        tr.commit();
      }
      catch (HibernateException ex) {
      }
      finally{
        try {
          session.close();
        }
        catch (HibernateException ex1) {
        }
      }

    }

//修改数据
    public void update(int id,String pwd){
      try {
        session = sf.openSession();
        tr=session.beginTransaction();
        //先定位数据
        net.sf.hibernate.Query query=session.createQuery("from Users where id=?");
        query.setInteger(0,id);
        List list=query.list();
        if(list.size()>0){
          Users user=(Users)list.get(0);
          //该密码
          user.setPassword(pwd);
          //保存回去
          session.update(user);
          session.flush();
          tr.commit();
          System.out.println("update ok");
        }
        else{
          System.out.println("no record can be updated");
        }
      }
      catch (HibernateException ex) {
      }
      finally{
        try {
          session.close();
        }
        catch (HibernateException ex1) {
        }
      }


    }


//删除数据
    public void delete(int id){
      try {
        session = sf.openSession();
        tr=session.beginTransaction();
        //先定位数据
        net.sf.hibernate.Query query=session.createQuery("from Users where id=?");
        query.setInteger(0,id);
        List list=query.list();
        if(list.size()>0){
          Users user=(Users)list.get(0);
          //删除数据
          session.delete(user);
          session.flush();
          tr.commit();
          System.out.println("delete ok");
        }
        else{
          System.out.println("no record can be deleted");
        }
      }
      catch (HibernateException ex) {
      }
      finally{
        try {
          session.close();
        }
        catch (HibernateException ex1) {
        }
      }


    }

    public static void main(String[] args) {
      HibernateUtil hibernateUtil1 = new HibernateUtil();
      //hibernateUtil1.add("subin","123456");
      //hibernateUtil1.chaxun(3);
      //hibernateUtil1.update(3,"9876543");
      //hibernateUtil1.chaxun(3);
      hibernateUtil1.delete(4);
    }

}

连接操作在配置文件hibernate.cfg.xml中完成

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory>
    <property name="dialect">
    net.sf.hibernate.dialect.SQLServerDialect
    </property>
    <property name="show_sql">true</property>
    <property name="connection.driver_class">
    com.microsoft.jdbc.sqlserver.SQLServerDriver
    </property>
    <property name="connection.url">
    jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;
    </property>
    <property name="connection.username">
    sa
    </property>
    <property name="connection.password">

    </property>

    <mapping resource="com/hygj/bean/Users.hbm.xml" />
</session-factory>
</hibernate-configuration>