package org.easyframe.tutorial.lesson1; import java.sql.SQLException; import java.util.Date; import java.util.List; import jef.database.DbClient; import jef.database.DbClientBuilder; import jef.database.ORMConfig; import org.easyframe.tutorial.lesson1.entity.Foo2; import org.junit.Assert; import org.junit.Test; public class Case2 { /** * 现在我们可以更进一步。刚才我们用Foo这种POJO来作为实体,其实并不是ef-orm推荐的。 * ef-orm希望实体按以下的要求书写 * 1. 继承 jef.database.DataObject * 2. 在类中加入一个内部的enum类型,用于描述所有的数据库字段。 * (参见 org.easyframe.tutorial.lesson1.entity.Foo2) * * 一旦实现了上述要求,那么对数据库的操作可以变得更为灵活和强大(将在后面的例子中展示) * * @throws SQLException */ @Test public void simpleTest() throws SQLException{ ORMConfig.getInstance().setEnableLazyLob(true); DbClient db=new DbClientBuilder().build(); db.dropTable(Foo2.class); //创建表 db.createTable(Foo2.class); //插入记录 Foo2 foo=new Foo2(); foo.setId(1); foo.setName("Hello,World!"); foo.setCreated(new Date()); foo.setComments("岁的江苏大丰"); db.insert(foo); //插入一条记录 //从数据库查询这条记录 // Foo2 loaded=db.load(foo); Foo2 loaded=db.load(Foo2.class, foo.getId()); System.out.println(loaded.getName()); System.out.println("=================================="); System.out.println(loaded.getComments()); //更新这条记录 loaded.setName("EF-ORM is very simple."); db.update(loaded); //删除这条记录 db.delete(loaded); //查询全表 List<Foo2> allrecords=db.selectAll(Foo2.class); Assert.assertTrue(allrecords.isEmpty()); //删除表 db.dropTable(Foo2.class); } }