使用hibernate进行增删改查

这篇文章是接着“第一个spring程序来写的”,在这篇文章中我加了2张表(t_Student和t_Class),这2张表里都有数据。看一下这2个表的映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.lxh.vo">
    <class name="Banji" table="t_class">
        <id name="classno"  column="classno">
            <generator class="native"/>
        </id>
        
        <property name="classname"/>
        <property name="headname"/>
        <property name="departno" column="dno"/>
    </class>
</hibernate-mapping>


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.lxh.vo">
    <class name="Student" table="t_student">
        <id name="studentno" column="sno" >
            <generator class="assigned"/>
        </id>
        <property name="studentname" column="sname"/>
        <property name="departno" column="dno"/>
        <property name="classno" column="classno"/>
        <property name="phonenumber" column="phonenum"/>
    </class>
</hibernate-mapping>


前面的东西一样,只需在junit里加一下代码就可以了,代码如下所示

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.Transaction;
import org.junit.BeforeClass;
import org.lxh.util.HibernateUtil;
import org.lxh.vo.Banji;
import org.lxh.vo.Student;
import org.lxh.vo.User;

public class Test {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}
	@org.junit.Test public void cascadeBook() {

		Session ses=null;
		Transaction tr=null;
		
		
		try{
			
			ses=HibernateUtil.getSession();   //取得session
			
			tr=ses.beginTransaction();
			
			User user=new User();
			user.setUsername("chenwill4");
			user.setPassword("123456");
			ses.save(user);     //把数据插入数据库
		
			tr.commit();
		
		}catch(HibernateException e){
			throw e;
		}finally{
			if(ses!=null)
			{
				ses.close();
			}
			
		}
		
	}
	@org.junit.Test public void queryUser() {

		Session ses=null;
		Transaction tr=null;
		
		
		try{
			
			ses=HibernateUtil.getSession();   //取得session
			
			tr=ses.beginTransaction();
			Query qu=ses.createQuery("from User where id=?");
			//Query qu=ses.createQuery("from User");
			qu.setParameter(0, 2);
			List<User> list=qu.list();
			Iterator<User> it=list.iterator();
			User u=null;
			while(it.hasNext())
			{
				u=new User();
				u=it.next();
				System.out.println(u.getUsername());
				System.out.println(u.getPassword());
			}
		
			
		
		}catch(HibernateException e){
			throw e;
		}finally{
			if(ses!=null)
			{
				ses.close();
			}
			
		}
		
	}
	@org.junit.Test public void deleteUser() {

		Session ses=null;
		Transaction tr=null;
		
		
		try{
			
			ses=HibernateUtil.getSession();   //取得session
			
			tr=ses.beginTransaction();
		    User u=new User();
		    u.setId(1);
		    ses.delete(u);
		  
			tr.commit();
		
		}catch(HibernateException e){
			throw e;
		}finally{
			if(ses!=null)
			{
				ses.close();
			}
			
		}
		
	}
	@org.junit.Test public void updateUser() {

		Session ses=null;
		Transaction tr=null;
		
		
		try{
			
			ses=HibernateUtil.getSession();   //取得session
			
			tr=ses.beginTransaction();
		    User u=new User();
		    u.setId(2);
		    u.setUsername("陈瑞银2");
		    u.setPassword("00000");
		    ses.update(u);
		  
			tr.commit();
		
		}catch(HibernateException e){
			throw e;
		}finally{
			if(ses!=null)
			{
				ses.close();
			}
			
		}
		
	}
	@org.junit.Test public void joinQuery() {

		Session ses=null;
		Transaction tr=null;
		
		
		try{
			
			ses=HibernateUtil.getSession();   //取得session
			
			tr=ses.beginTransaction();
			Query qu=ses.createQuery("from Student a,Banji b where a.classno=b.classno");
			//Query qu=ses.createQuery(" from Student a,Banji b where a.classno=b.classno");
			List list=qu.list();
			Iterator it=list.iterator();
			//List<Student,Banji> list=qu.list();
			while(it.hasNext())
			{
				
				//for(int i=0;i<obj.length;i++)
				//{
					Object[] obj=(Object[])it.next();
					Student stu=(Student)obj[0];
					
					System.out.println(stu.getStudentno());
					System.out.println(stu.getStudentname());
					Banji b=(Banji)obj[1];
					System.out.println(b.getHeadname());
					//System.out.println();
				//}
				
			}
		}catch(HibernateException e){
			throw e;
		}finally{
			if(ses!=null)
			{
				ses.close();
			}
			
		}
		
	}
}


这样程序就写好了,但是后面的内容会更加复杂,这些都是基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值