Search in sources :

Example 31 with Sql

use of org.nutz.dao.sql.Sql in project nutz by nutzam.

the class SqlImplTest method test_sql_get_list.

@Test
public void test_sql_get_list() {
    Sql sql = Sqls.create("SELECT version()");
    ArrayList<Map<Object, Object>> list = new ArrayList<Map<Object, Object>>();
    list.add(new HashMap<Object, Object>());
    list.add(new HashMap<Object, Object>());
    sql.getContext().setResult(list);
    // 传入 map结果会导致上面的isFrom 为false
    List<?> re = sql.getList(Map.class);
    assertTrue(re == list);
    // 因为list中的实例是HashMap,因此能够正常返回
    re = sql.getList(HashMap.class);
    assertTrue(re == list);
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Map(java.util.Map) HashMap(java.util.HashMap) Sql(org.nutz.dao.sql.Sql) Test(org.junit.Test)

Example 32 with Sql

use of org.nutz.dao.sql.Sql in project nutz by nutzam.

the class SimpleDaoExecTest method test_simple_h2_call.

// H2 支持简单的CALL语句
@Test
public void test_simple_h2_call() {
    if (!dao.meta().isH2())
        // Only test for h2 now
        return;
    dao.create(Pet.class, true);
    dao.insert(Pet.create("wendal"));
    dao.execute(Sqls.create("CALL SELECT MAX(ID) FROM t_PET"));
    Sql sql = Sqls.fetchInt("CALL SELECT MAX(ID) FROM t_PET");
    dao.execute(sql);
    assertEquals(1, sql.getInt());
    sql = Sqls.fetchInt("CALL 15*25");
    dao.execute(sql);
    assertEquals(15 * 25, sql.getInt());
}
Also used : Sql(org.nutz.dao.sql.Sql) Test(org.junit.Test)

Example 33 with Sql

use of org.nutz.dao.sql.Sql in project nutz by nutzam.

the class SimpleDaoExecTest method test_exec_out.

@Test
public void test_exec_out() {
    if (!dao.meta().isMySql())
        // Only test for mysql now
        return;
    dao.create(Pet.class, true);
    dao.insert(Pet.create("wendal"));
    Pet pet = dao.fetch(Pet.class, "wendal");
    dao.execute(Sqls.create("DROP PROCEDURE IF EXISTS proc_pet_fetch"));
    dao.execute(Sqls.create("CREATE PROCEDURE proc_pet_fetch(IN nm varchar(1024), OUT outId int)\nBEGIN\n\tselect id into outId from t_pet where name=nm;\nEND"));
    // 像普通自定义SQL那样创建SQL对象.
    Sql sql = Sqls.create("CALL proc_pet_fetch(@nm, @OUTid)");
    sql.setEntity(dao.getEntity(Pet.class));
    // 设置入参
    sql.params().set("nm", "wendal");
    // 设置出参类型,注意,必须加OUT开头
    sql.params().set("OUTid", Types.INTEGER);
    dao.execute(sql);
    Record re = sql.getOutParams();
    assertNotNull(re);
    assertEquals(pet.getId(), re.get("id"));
}
Also used : Record(org.nutz.dao.entity.Record) Pet(org.nutz.dao.test.meta.Pet) Sql(org.nutz.dao.sql.Sql) Test(org.junit.Test)

Example 34 with Sql

use of org.nutz.dao.sql.Sql in project nutz by nutzam.

the class SimpleDaoExecTest method test_simple_mysql_exec2.

// Mysql支持存储过程
@Test
public void test_simple_mysql_exec2() {
    if (!dao.meta().isMySql())
        // Only test for mysql now
        return;
    dao.create(Pet.class, true);
    dao.insert(Pet.create("wendal"));
    dao.execute(Sqls.create("DROP PROCEDURE IF EXISTS proc_pet_fetch"));
    dao.execute(Sqls.create("CREATE PROCEDURE proc_pet_fetch(IN nm varchar(1024))\nBEGIN\n\tSELECT * FROM t_pet where name=nm;\nEND"));
    Sql sql = Sqls.fetchEntity("CALL proc_pet_fetch(@nm)");
    sql.setEntity(dao.getEntity(Pet.class));
    sql.params().set("nm", "wendal");
    dao.execute(sql);
    Pet pet = sql.getObject(Pet.class);
    assertNotNull(pet);
    assertEquals("wendal", pet.getName());
}
Also used : Pet(org.nutz.dao.test.meta.Pet) Sql(org.nutz.dao.sql.Sql) Test(org.junit.Test)

Example 35 with Sql

use of org.nutz.dao.sql.Sql in project nutz by nutzam.

the class NutDao method drop.

public boolean drop(String tableName) {
    if (!exists(tableName))
        return false;
    Sql sql = Sqls.createf("DROP TABLE %s", tableName);
    _exec(sql);
    return true;
}
Also used : Sql(org.nutz.dao.sql.Sql)

Aggregations

Sql (org.nutz.dao.sql.Sql)69 Test (org.junit.Test)33 MappingField (org.nutz.dao.entity.MappingField)14 ArrayList (java.util.ArrayList)12 NutSql (org.nutz.dao.impl.sql.NutSql)9 Pet (org.nutz.dao.test.meta.Pet)9 ResultSet (java.sql.ResultSet)8 SQLException (java.sql.SQLException)8 FileSqlManager (org.nutz.dao.impl.FileSqlManager)8 Connection (java.sql.Connection)7 SqlManager (org.nutz.dao.SqlManager)7 SqlCallback (org.nutz.dao.sql.SqlCallback)5 Record (org.nutz.dao.entity.Record)4 PojoSql (org.nutz.dao.test.meta.issue1074.PojoSql)4 Dao (org.nutz.dao.Dao)3 DaoException (org.nutz.dao.DaoException)3 PreparedStatement (java.sql.PreparedStatement)2 HashMap (java.util.HashMap)2 List (java.util.List)2 LinkField (org.nutz.dao.entity.LinkField)2