hibernate 增删改查例子


跟着下面的例子  可实现  使用hibernate hql的增删改查


package test;
import java.util.Iterator;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import pojo.HibernateSessionFactory;
import pojo.TblArea;
import sun.awt.CausedFocusEvent.Cause;

public class HibernateTest { 
	 static Session session = null;
	 
	 public static void main(String[] args) {
		setup(); 
		insert();
		query();  
		delete("ac");
		close();  
	}
	
	 protected static boolean setup() {
		 try{
			 Configuration configuration =HibernateSessionFactory.getConfiguration();
			 SessionFactory sf =configuration.buildSessionFactory();
			 session = sf.openSession();
			 if(session.isOpen())
				 System.out.println("session open"); 
				 return true;
			 }catch (HibernateException e) {
				   e.printStackTrace();
				   System.out.printf("error");
				   return false;
		     }
     }       
	 protected static void insert() {
		 TblArea tblArea =new TblArea();
		 tblArea.setAreaId("vv");  
		 tblArea.setAreaName("zhangsan");
		 Transaction tx=session.beginTransaction();//开启事物
		 session.save(tblArea);//
		 tx.commit();//一定要提交,不然不会更新到数据库里面
		 //session.close();  
	 }   
 	 protected static void query() { 
		  
		 Query query = session.createQuery("from TblArea");
		 List<TblArea> list=query.list();
		 for(TblArea admin:list){
		     System.out.println(admin.getAreaId());
		     System.out.println(admin.getAreaName()); 
		    } 
	 } 
	 
	 public static void delete(String id){    
		 
		 Transaction tx=session.beginTransaction();//开启事物
		 TblArea course=(TblArea)session.load(TblArea.class,id); 
		 session.delete(course);
		 tx.commit();
	 }      
	 public static void close() {
		 try{
		     session.close();
		 } catch(HibernateException he) {
		   he.printStackTrace();
		 }
	 } 
}


几种查询方式

HQL查询

static void query(String name){
	   Session s=null;
	   try{
	    s=HibernateUtil.getSession();
	    
	    //from后面是对象,不是表名
	   String hql="from Admin as admin where admin.aname=:name";//使用命名参数。
	   Query query=s.createQuery(hql);
	    query.setString("name", name);
	    
	    List<Admin> list=query.list();
	    
	    for(Admin admin:list){
	     System.out.println(admin.getAname());
	    }
	   }finally{
	    if(s!=null)
	    s.close();
	   }
	  }

 

对象化查询Criteria方法

static void cri(String name,String password){
   Session s=null;
   try{
    s=HibernateUtil.getSession();
    
    Criteria c=s.createCriteria(Admin.class);
    c.add(Restrictions.eq("aname",name));//eq是等于,gt是大于,lt是小于,or是或
   c.add(Restrictions.eq("apassword", password));
    
    List<Admin> list=c.list();
    for(Admin admin:list){
     System.out.println(admin.getAname());
    }
   }finally{
    if(s!=null)
    s.close();
   }
  }


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值