您的位置:首页 > 其它

hibernate学习2(以单元测试方式练习)

2013-03-19 00:06 183 查看
一、新建一个java工程名为:hibernate_0200;

二、导入必要的包:hibernate相关和junit4;

三、目录结构如图:

View Code

package com.bjsxt.hibernate;

import java.util.Date;
import java.util.Iterator;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class HibernateQLTest {
private static SessionFactory sf;

@BeforeClass
public static void beforeClass() {
sf = new AnnotationConfiguration().configure().buildSessionFactory();
}
@AfterClass
public static void afterClass() {
sf.close();
}

@Test
public void testSchemaExport() {
new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
}

@Test
public void testSave() {
Session session = sf.openSession();
session.beginTransaction();

for(int i=0; i<10; i++) {
Category c = new Category();
c.setName("c" + i);
session.save(c);
}

for(int i=0; i<10; i++) {
Category c = new Category();
c.setId(1);
Topic t = new Topic();
t.setCategory(c);
t.setTitle("t" + i);
t.setCreateDate(new Date());
session.save(t);

}

for(int i=0; i<10; i++) {

Topic t = new Topic();
t.setId(1);
Msg m = new Msg();
m.setCont("m" + i);
m.setTopic(t);
session.save(m);

}

session.getTransaction().commit();
session.close();
}

//list 与 iterate
@Test
public void testQuery5() {
Session session = sf.openSession();
session.beginTransaction();
Iterator<Topic> topics = session.createQuery("from Topic").iterate();
while(topics.hasNext()){
System.out.println(topics.next().getTitle());
}

Iterator<Topic> topics2 = session.createQuery("from Topic").iterate();
while(topics2.hasNext()){
System.out.println(topics2.next().getTitle());
}

session.getTransaction().commit();
session.close();
}

//list 与 iterate
@Test
public void testQuery6() {
Session session = sf.openSession();
session.beginTransaction();
Iterator<Topic> topics = session.createQuery("from Topic").list().iterator();
while(topics.hasNext()){
System.out.println(topics.next().getTitle());
}

Iterator<Topic> topics2 = session.createQuery("from Topic").list().iterator();
while(topics2.hasNext()){
System.out.println(topics2.next().getTitle());
}

session.getTransaction().commit();
session.close();
}

public static void main(String[] args) {
beforeClass();
}
}


五、运行如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: