package org.easyframe.tutorial.lesson8;
import java.sql.SQLException;
import java.util.Arrays;
import jef.codegen.EntityEnhancer;
import jef.database.DbClient;
import jef.database.DbClientBuilder;
import jef.database.ORMConfig;
import jef.database.QB;
import jef.database.query.Query;
import jef.database.wrapper.ResultIterator;
import org.easyframe.tutorial.lesson2.entity.Student;
import org.easyframe.tutorial.lesson4.entity.DataDict;
import org.easyframe.tutorial.lesson4.entity.Person;
import org.easyframe.tutorial.lesson4.entity.School;
import org.easyframe.tutorial.lesson5.entity.Item;
import org.junit.BeforeClass;
import org.junit.Test;
public class Case2 extends org.junit.Assert {
private static DbClient db;
/**
* 测试数据准备
*
* @throws SQLException
*/
@BeforeClass
public static void setup() throws SQLException {
db = new DbClientBuilder().setEnhancePackages("org.easyframe.tutorial").build();
ORMConfig.getInstance().setDebugMode(false);
db.dropTable(Person.class, Item.class, Student.class, School.class, DataDict.class);
db.createTable(Person.class, Item.class, Student.class, School.class, DataDict.class);
DataDict dict1 = new DataDict("USER.GENDER", "M", "男人");
DataDict dict2 = new DataDict("USER.GENDER", "F", "女人");
db.batchInsert(Arrays.asList(dict1, dict2));
Person p = new Person();
p.setGender('M');
p.setName("张飞");
p.setCurrentSchool(new School("成都大学"));
db.insertCascade(p);
p = new Person();
p.setGender('M');
p.setName("关羽");
p.setCurrentSchool(new School("襄阳大学"));
db.insertCascade(p);
p = new Person();
p.setGender('M');
p.setName("刘备");
p.setCurrentSchoolId(1);
db.insert(p);
ORMConfig.getInstance().setDebugMode(true);
}
/**
* 当需要查询的数据量非常庞大时,如数据导出等,可以使用Iterator模式 流式处理。
* @throws SQLException
*/
@Test
public void testIteratedSelect() throws SQLException{
Query<Person> p=QB.create(Person.class);
p.setFetchSize(100);
ResultIterator<Person> results=db.iteratedSelect(p, null);
try{
for(;results.hasNext();){
Person person=results.next();
//执行业务处理
System.out.println(person);
}
}finally{
results.close();
}
}
}