package bean;
import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
import org.hibernate.Query;
import org.hibernate.Session;
import sql.HibernateSessionFactory;
/*
* 以下方法依此演示了对主从表的增、删、改、查。
* 调试的时候,依次去掉注释。
* */
public class Test extends TestCase
{
public void test()
{
// Session session =HibernateSessionFactory.getSession();
// TCard tCard=new TCard();
// tCard.setId("104");
// tCard.setCardNo("a");
//
// TPerson tPerson=new TPerson();
// tPerson.setId("6");
// tPerson.setName("tom");
// tPerson.setTCard(tCard);
// tCard.getTPersons().add(tPerson);
// session.save(tCard);
//
// session.beginTransaction().commit();
// session.close();
// System.out.println("insert over");
//级联增加在主表的配置文件中一定加上cascade="all"
}
public void test1()
{
//删除从表主表记录不被删除
// Session session =HibernateSessionFactory.getSession();
// Query query=session.createQuery("delete TPerson tp where tp.TCard in(from TCard tc where tc.id=?)");
//
// query.setString(0,"123");
// int line=query.executeUpdate();
// System.out.println(line);
// session.beginTransaction().commit();
// session.close();
// System.out.println("delete over");
}
public void test2()
{
// 删除主表,从表记录级联删除
// Session session =HibernateSessionFactory.getSession();
// String sql="delete TCard tc where tc.id in(select TCard from TPerson tp where tp.name=?)";
// Query query=session.createQuery(sql);
// query.setString(0, "tom");
// int line=query.executeUpdate();
// System.out.println(line);
// session.beginTransaction().commit();
// session.close();
// System.out.println("delete over");
}
public void test3()
{
// 修改主表
// Session session =HibernateSessionFactory.getSession();
// String sql="update TCard tc set tc.cardNo=? where tc.id=?";
// Query query=session.createQuery(sql);
// query.setString(0,"222");
// query.setString(1,"123");
// int line=query.executeUpdate();
// System.out.println(line);
// session.beginTransaction().commit();
// session.close();
// System.out.println("update over");
}
public void test4()
{
// 修改从表
// Session session =HibernateSessionFactory.getSession();
// String sql="update TPerson tp set tp.TCard=? where tp.name=?";
//
// Query query=session.createQuery(sql);
// query.setString(0,"456");
// query.setString(1,"Tom");
// int line=query.executeUpdate();
// System.out.println(line);
// session.beginTransaction().commit();
// session.close();
// System.out.println("update over");
}
public void test5()
{
//查从表
// Session session =HibernateSessionFactory.getSession();
//
//
// String sql="from TPerson tp where tp.TCard in(from TCard tc where tc.id=?)";
// Query query=session.createQuery(sql);
// query.setString(0,"456");
// List list=query.list();
//
// Iterator it=list.iterator();
// while(it.hasNext())
// {
// TPerson tp=(TPerson)it.next();
// System.out.println(tp.getId()+": "+tp.getName());
// }
// session.close();
}
public void test6()
{
//查主表
// Session session =HibernateSessionFactory.getSession();
//
//
// String sql="from TCard tc where tc.id=?";
// Query query=session.createQuery(sql);
// query.setString(0,"456");
// List list=query.list();
//
// Iterator it=list.iterator();
// while(it.hasNext())
// {
// TCard obj=(TCard)it.next();
// String id=(String)obj.getId();
// String cardNo=(String)obj.getCardNo();
// System.out.println(id+": "+cardNo);
// }
// session.close();
}
public void test7()
{
//查主表,从表
Session session =HibernateSessionFactory.getSession();
String sql="from TCard tc,TPerson tp where tc.id=?";
Query query=session.createQuery(sql);
query.setString(0,"456");
List list=query.list();
Iterator it=list.iterator();
while(it.hasNext())
{
Object[] obj=(Object[])it.next();
TCard tCard=(TCard)obj[0];
String id=(String)tCard.getId();
String cardNo=(String)tCard.getCardNo();
System.out.println(id+": "+cardNo);
TPerson tPerson=(TPerson)obj[1];
String name=tPerson.getName();
System.out.println(name);
}
session.close();
}
}
- 1
- 2
前往页