Search in sources :

Example 46 with Sql

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);
}
Also used : Sql(org.nutz.dao.sql.Sql)

Example 47 with Sql

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());
}
Also used : Sql(org.nutz.dao.sql.Sql)

Example 48 with Sql

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

the class SqlTemplate method queryForLong.

/**
     * 执行一个SQL查询操作,结果为一个long形数值。
     * 
     * @param sql
     *            包含变量占位符的SQL
     * @param vars
     *            变量map,无参数时,可为null
     * @param params
     *            参数map,无参数时,可为null
     * 
     * @return long数值,当查询为null时返回0
     */
public long queryForLong(String sql, Map<String, Object> vars, Map<String, Object> params) {
    Sql sqlObj = createSqlObj(sql, params);
    sqlObj.setCallback(Sqls.callback.longValue());
    execute(sqlObj, vars, params);
    Long result = sqlObj.getObject(Long.class);
    return result == null ? 0 : result;
}
Also used : Sql(org.nutz.dao.sql.Sql)

Example 49 with Sql

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

the class SqlTemplate method queryForObject.

/**
     * 执行一个SQL查询操作,结果为给定对象类型的对象,适用于明确SQL查询结果的类型。
     * 
     * @param sql
     *            包含变量占位符的SQL
     * @param vars
     *            变量map,无参数时,可为null
     * @param params
     *            参数map,无参数时,可为null
     * @param classOfT
     *            对象类型,SQL查询结果所对应的类型,如Date.class等
     * 
     * @return 对象,无查询结果时返回null
     */
public <T> T queryForObject(String sql, Map<String, Object> vars, Map<String, Object> params, Class<T> classOfT) {
    Sql sqlObj = createSqlObj(sql, params);
    sqlObj.setCallback(new SqlCallback() {

        public Object invoke(Connection conn, ResultSet rs, Sql sql) throws SQLException {
            if (null != rs && rs.next())
                return rs.getObject(1);
            return null;
        }
    });
    execute(sqlObj, vars, params);
    return sqlObj.getObject(classOfT);
}
Also used : SqlCallback(org.nutz.dao.sql.SqlCallback) SQLException(java.sql.SQLException) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) Sql(org.nutz.dao.sql.Sql)

Example 50 with Sql

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

the class SqlTemplate method queryRecords.

/**
     * 执行一个SQL查询操作,结果为Record对象列表。
     * 
     * @param sql
     *            包含变量占位符的SQL
     * @param vars
     *            变量map,无参数时,可为null
     * @param params
     *            参数map,无参数时,可为null
     * 
     * @return Record列表,无查询结果时返回长度为0的List对象
     */
public List<Record> queryRecords(String sql, Map<String, Object> vars, Map<String, Object> params) {
    Sql sqlObj = createSqlObj(sql, params);
    sqlObj.setCallback(Sqls.callback.records());
    execute(sqlObj, vars, params);
    return sqlObj.getList(Record.class);
}
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