这篇文章是接着“第一个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();
}
}
}
}
这样程序就写好了,但是后面的内容会更加复杂,这些都是基础。