java操作数据库的工具类 (一)

2014-11-24 11:24:38 · 作者: · 浏览: 14
public abstract class AbstractDao {
protected final Log log = LogFactory.getLog(this.getClass());
protected DBHelper helper = new DBHelper();
private Map params;
private String sqlQry;
protected long size;
protected long start;

/**
* 取得资料的比
*
* @param sqlQry
* sql语句
* @return 资料笔数
*/
public int executeCount(String sqlQry) {
return executeCount(sqlQry, new ArrayList());
}

/**
* 取得符合条件的笔数
*
* @param sqlQry
* sql语句(参数格式 :参数名)
* @param params
* 参数Map
* @return 资料笔数
*/
public int executeCount(String sqlQuery, Map params) {
ResultSet rs = null;
int count = 0;
try {
this.sqlQry = sqlQuery;
this.params = params;
this.size = -1;
this.start = -1;
setParams();
rs = helper.createStatement().executeQuery(sqlQry);
if (rs.next()) {
count = rs.getInt(1);
}
} catch (SQLException e) {
log.error(e.toString(), e);
} finally {
log.debug(sqlQry);
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
log.error(e.toString(), e);
}
}
close();
}
return count;
}

/**
* 取得符合条件的笔数
*
* @param sqlQuery
* sql语句(参数用 代替)
* @param params
* 参数List
* @return 资料笔数
*/
public int executeCount(String sqlQuery, List params) {
ResultSet rs = null;
int count = 0;
try {
PreparedStatement pstmt = helper.createStatement(sqlQuery);
setParams(pstmt, params);
rs = pstmt.executeQuery();
if (rs.next()) {
count = rs.getInt(1);
}
} catch (SQLException e) {
log.error(e.toString(), e);
} finally {
log.debug(sqlQry);
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
log.error(e.toString(), e);
}
}
close();
}
return count;
}

public int executeCount(String sqlQuery, Object[] params) {
List list = new ArrayList();
if (params != null) {
for (Object o : params) {
list.add(o);
}
}
return executeCount(sqlQuery, list);
}

/**
* 根据提供的SQL查询数据
*
* @param c
* 数据类型 可以是Model.class 后 Object[].class
* @param sqlQry
* 查询SQL
* @return 指定类型的List
*/
public List executeQuery(Class c, String sqlQry) {
return executeQuery(c, sqlQry, new ArrayList());
}

/**
*
* 根据提供的SQL查询数据
*
* @param c
* 数据类型 可以是Model.class 后 Object[].class
* @param sqlQuery
* 查询SQL(参数格式 :参数名)
* @param params
* 参数Map
* @return 指定类型的List
*/
@Suppres