Search in sources :

Example 31 with Pet

use of org.nutz.dao.test.meta.Pet in project nutz by nutzam.

the class SimpleDaoTest method test_count_groupby.

@Test
public void test_count_groupby() {
    if (!dao.meta().isMySql())
        return;
    // MySQL/PgSQL/SqlServer 与 Oracle/H2的结果会不一样,奇葩啊
    for (int i = 0; i < 10; i++) {
        Pet pet = Pet.create(R.UU32());
        pet.setAge(20 + i / 4);
        dao.insert(pet);
    }
    Cnd cnd = Cnd.where("age", ">", 20);
    cnd.groupBy("age");
    assertEquals(10, dao.count(Pet.class, null));
    assertEquals(4, dao.count(Pet.class, cnd));
}
Also used : Cnd(org.nutz.dao.Cnd) Issue1163Pet(org.nutz.dao.test.meta.issue1163.Issue1163Pet) Pet(org.nutz.dao.test.meta.Pet) Test(org.junit.Test)

Example 32 with Pet

use of org.nutz.dao.test.meta.Pet in project nutz by nutzam.

the class SimpleDaoTest method test_sql_pager.

@Test
public void test_sql_pager() {
    dao.create(Pet.class, true);
    for (int i = 0; i < 100; i++) {
        dao.insert(Pet.class, Chain.make("name", "record" + i).add("nickName", "Time=" + System.currentTimeMillis()));
    }
    Pager pager = dao.createPager(5, 5);
    pager.setRecordCount(dao.count(Pet.class));
    Sql sql = Sqls.queryEntity("select * from t_pet");
    sql.setEntity(dao.getEntity(Pet.class));
    sql.setPager(pager);
    dao.execute(sql);
    List<Pet> pets = sql.getList(Pet.class);
    assertNotNull(pets);
    assertEquals(5, pets.size());
    assertEquals("record20", pets.get(0).getName());
    assertEquals("record21", pets.get(1).getName());
    assertEquals("record22", pets.get(2).getName());
    assertEquals("record23", pets.get(3).getName());
    assertEquals("record24", pets.get(4).getName());
}
Also used : Pager(org.nutz.dao.pager.Pager) Issue1163Pet(org.nutz.dao.test.meta.issue1163.Issue1163Pet) Pet(org.nutz.dao.test.meta.Pet) PojoSql(org.nutz.dao.test.meta.issue1074.PojoSql) Sql(org.nutz.dao.sql.Sql) Test(org.junit.Test)

Example 33 with Pet

use of org.nutz.dao.test.meta.Pet in project nutz by nutzam.

the class SimpleDaoTest method test_insert_with_id.

@Test
public void test_insert_with_id() {
    if (dao.meta().isSqlServer())
        return;
    dao.clear(Pet.class);
    Pet pet = Pet.create("zzz");
    // 主动设置id
    pet.setId(9090);
    Dao dao = Daos.ext(this.dao, FieldFilter.create(Pet.class, FieldMatcher.make(null, null, true).setIgnoreId(false)));
    dao.fastInsert(pet);
    // 只有一条记录
    pet = dao.fetch(Pet.class);
    assertEquals(9090, pet.getId());
    // / 然后用1.b.53的新方法测试一下
    if (dao.meta().isPostgresql()) {
        System.out.println("因为Pet的@Id配置了@Next,导致插入后再执行里面的sql会报错");
        // 还没想到怎么解决, FieldMatcher存在的时候忽略@Next?
        return;
    }
    dao.clear(Pet.class);
    pet = Pet.create("zzz");
    // 主动设置id
    pet.setId(9090);
    dao.insert(pet, FieldFilter.create(Pet.class, FieldMatcher.create(false)));
    // 只有一条记录
    pet = dao.fetch(Pet.class);
    assertEquals(9090, pet.getId());
}
Also used : NutDao(org.nutz.dao.impl.NutDao) Dao(org.nutz.dao.Dao) Issue1163Pet(org.nutz.dao.test.meta.issue1163.Issue1163Pet) Pet(org.nutz.dao.test.meta.Pet) Test(org.junit.Test)

Example 34 with Pet

use of org.nutz.dao.test.meta.Pet in project nutz by nutzam.

the class SimpleDaoTest method test_migration.

@Test
public void test_migration() {
    dao.execute(Sqls.create("drop table t_pet"));
    Entity<Pet> en = dao.getEntity(Pet.class);
    NutDao dao = (NutDao) this.dao;
    JdbcExpert expert = dao.getJdbcExpert();
    MappingField mf = en.getField("age");
    String str = "create table t_pet (" + mf.getColumnName() + " " + expert.evalFieldType(mf) + "," + mf.getColumnName() + "_2" + " " + expert.evalFieldType(mf) + ")";
    dao.execute(Sqls.create(str));
    Daos.migration(dao, Pet.class, !dao.meta().isSQLite(), !dao.meta().isSQLite());
}
Also used : NutDao(org.nutz.dao.impl.NutDao) JdbcExpert(org.nutz.dao.jdbc.JdbcExpert) MappingField(org.nutz.dao.entity.MappingField) Issue1163Pet(org.nutz.dao.test.meta.issue1163.Issue1163Pet) Pet(org.nutz.dao.test.meta.Pet) Test(org.junit.Test)

Example 35 with Pet

use of org.nutz.dao.test.meta.Pet in project nutz by nutzam.

the class FieldFilterTest method test_query_by_filter.

@Test
public void test_query_by_filter() {
    dao.update(dao.fetch(Pet.class, "xb").setNickName("XiaoBai"));
    assertEquals("XiaoBai", dao.fetch(Pet.class, "xb").getNickName());
    final List<Pet> pets = new ArrayList<Pet>();
    FieldFilter.create(Pet.class, "id|name").run(new Atom() {

        public void run() {
            pets.add(dao.query(Pet.class, null, null).get(0));
        }
    });
    assertNull(pets.get(0).getNickName());
}
Also used : ArrayList(java.util.ArrayList) Pet(org.nutz.dao.test.meta.Pet) Atom(org.nutz.trans.Atom) Test(org.junit.Test)

Aggregations

Pet (org.nutz.dao.test.meta.Pet)48 Test (org.junit.Test)45 Issue1163Pet (org.nutz.dao.test.meta.issue1163.Issue1163Pet)13 Atom (org.nutz.trans.Atom)8 Sql (org.nutz.dao.sql.Sql)7 ArrayList (java.util.ArrayList)6 Record (org.nutz.dao.entity.Record)5 List (java.util.List)4 HashMap (java.util.HashMap)3 NutDao (org.nutz.dao.impl.NutDao)3 NutSql (org.nutz.dao.impl.sql.NutSql)3 SimpleCriteria (org.nutz.dao.util.cri.SimpleCriteria)3 Connection (java.sql.Connection)2 SQLException (java.sql.SQLException)2 Timestamp (java.sql.Timestamp)2 Cnd (org.nutz.dao.Cnd)2 Criteria (org.nutz.dao.sql.Criteria)2 Master (org.nutz.dao.test.meta.Master)2 Stopwatch (org.nutz.lang.Stopwatch)2 Molecule (org.nutz.trans.Molecule)2