use of org.nutz.dao.sql.Sql in project nutz by nutzam.
the class SqlTemplate method queryForRecord.
/**
* 执行一个SQL查询操作,结果为Record的对象。
*
* @param sql
* 包含变量占位符的SQL
* @param vars
* 变量map,无参数时,可为null
* @param params
* 参数map,无参数时,可为null
* @return Record对象,无查询结果时返回null
*/
public Record queryForRecord(String sql, Map<String, Object> vars, Map<String, Object> params) {
Sql sqlObj = createSqlObj(sql, params);
sqlObj.setCallback(Sqls.callback.record());
execute(sqlObj, vars, params);
return sqlObj.getObject(Record.class);
}
use of org.nutz.dao.sql.Sql in project nutz by nutzam.
the class SqlTemplate method query.
/**
* 执行一个SQL查询操作,结果为一组对象。
*
* @param sql
* 包含变量占位符的SQL
* @param vars
* 变量map,无参数时,可为null
* @param params
* 参数map,无参数时,可为null
* @param entity
* 对象类型
*
* @return 对象列表,无查询结果时返回长度为0的List对象
*/
public <T> List<T> query(String sql, Map<String, Object> vars, Map<String, Object> params, Entity<T> entity) {
Sql sqlObj = createSqlObj(sql, params);
sqlObj.setCallback(Sqls.callback.entities());
sqlObj.setEntity(entity);
execute(sqlObj, vars, params);
return sqlObj.getList(entity.getType());
}
use of org.nutz.dao.sql.Sql in project nutz by nutzam.
the class SimplePojoInterceptorTest method test_pojo_interceptor_anno.
@Test
public void test_pojo_interceptor_anno() {
String name = "huchuc@vip.qq.com";
dao.create(XPet.class, true);
XPet xPet = new XPet();
// 主动设置name值,PrevInsert nullEffective=true,实际name已有预设值则PrevInsert不会起效
xPet.setName(name);
dao.insert(xPet);
assertEquals(1, dao.count(XPet.class));
assertNotNull(dao.fetch(XPet.class));
Sql sql = Sqls.fetchEntity("select * from t_xpet");
sql.setEntity(dao.getEntity(XPet.class));
dao.execute(sql);
XPet xPet1 = sql.getObject(XPet.class);
assertEquals(xPet1.getName(), name);
assertNotNull(sql.getObject(XPet.class));
assertNull(sql.getObject(XPet.class).getOtherTime());
Lang.quiteSleep(1000);
dao.update(sql.getObject(XPet.class), "updateTime");
}
use of org.nutz.dao.sql.Sql in project nutz by nutzam.
the class SqlLiteralTest method test_change_placeholder.
@Test
public void test_change_placeholder() {
String str = "select * from t_user where name = :name";
Sql sql = Sqls.create(str);
assertEquals(0, sql.paramIndex().size());
sql.changePlaceholder(':', '$');
assertEquals(1, sql.paramIndex().size());
}
use of org.nutz.dao.sql.Sql in project nutz by nutzam.
the class SimpleDaoExecTest method test_simple_mysql_exec.
// Mysql支持存储过程
@Test
public void test_simple_mysql_exec() {
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_getCount"));
dao.execute(Sqls.create("CREATE PROCEDURE proc_pet_getCount()\nBEGIN\n\tSELECT name FROM t_pet;\nEND"));
// 单一结果集,且没有输入输出参数
Sql sql = Sqls.fetchString("CALL proc_pet_getCount()");
dao.execute(sql);
assertEquals("wendal", sql.getString());
}
Aggregations