?? basejdbcdao.java
字號:
package com.channelsoft.qframe.dao.jdbc;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.RowCallbackHandler;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import com.channelsoft.qframe.dao.IBaseJdbcDao;
import com.channelsoft.qframe.exception.DaoException;
/**
* <dd>Description:基于JDBC的DAO基類,對于需要批量處理,或者涉及到大數(shù)據(jù)量的操作,使用此基類。
*/
public class BaseJdbcDao extends JdbcDaoSupport implements IBaseJdbcDao {
protected final Log logger = LogFactory.getLog(getClass());
/**
*
*/
public BaseJdbcDao() {
super();
}
public int update(String sql) throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行更新SQL語句:" + sql);
}
try {
return getJdbcTemplate().update(sql);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
public int update(String sql, Object[] args) throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行帶參數(shù)的更新SQL語句:[" + sql + "]");
for (Object a : args) {
logger.debug("[" + a + "]");
}
}
try {
return getJdbcTemplate().update(sql, args);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
public int queryForInt(String sql) throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行查詢SQL語句,返回int值,SQL=[" + sql + "]");
}
try {
return getJdbcTemplate().queryForInt(sql);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
public int queryForInt(String sql, Object[] args) throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行查詢帶參數(shù)的SQL語句,返回int值,SQL=[" + sql + "]");
for (Object a : args) {
logger.debug("[" + a + "]");
}
}
try {
return getJdbcTemplate().queryForInt(sql, args);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
public long queryForLong(String sql) throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行查詢SQL語句,返回long值,SQL=[" + sql + "]");
}
try {
return getJdbcTemplate().queryForLong(sql);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
public long queryForLong(String sql, Object[] args) throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行查詢帶參數(shù)的SQL語句,返回long值,SQL=[" + sql + "]");
for (Object a : args) {
logger.debug("[" + a + "]");
}
}
try {
return getJdbcTemplate().queryForLong(sql, args);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
public Object queryForObject(String sql, Class objClass)
throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行查詢SQL語句,返回Class的對象,SQL=[" + sql + "]");
}
try {
return getJdbcTemplate().queryForObject(sql, objClass);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
@SuppressWarnings("unchecked")
public List<Map> queryForList(String sql) throws DaoException {
try {
List<Map> list = getJdbcTemplate().queryForList(sql);
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行查詢SQL語句,SQL=[" + sql + "]");
logger.debug("返回結(jié)果列表:" + list.size());
}
return list;
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
@SuppressWarnings("unchecked")
public List<Map> queryForList(String sql, Object[] args)
throws DaoException {
long start = System.currentTimeMillis();
try {
List<Map> list = getJdbcTemplate().queryForList(sql, args);
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行帶參數(shù)的查詢SQL語句,SQL=[" + sql + "]");
for (Object a : args) {
logger.debug("[" + a + "]");
}
logger.debug("返回結(jié)果列表:" + list.size() + ",耗時:"
+ (System.currentTimeMillis() - start));
}
return list;
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
public void execute(String sql) throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行SQL語句,SQL=[" + sql + "]");
}
try {
getJdbcTemplate().execute(sql);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
/**
* 統(tǒng)計操作耗時
*
* @param message
* @param startTime
*/
protected void logTime(String message, long startTime) {
if (logger.isInfoEnabled()) {
long timeCost = System.currentTimeMillis() - startTime;
logger.info("操作耗時統(tǒng)計--" + message + (timeCost) + "毫秒");
}
}
public String queryForString(String sql) throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行查詢SQL語句,返回String值,SQL=[" + sql + "]");
}
try {
return (String) getJdbcTemplate().queryForObject(sql, String.class);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
public String queryForString(String sql, Object[] args) throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行查詢帶參數(shù)的SQL語句,返回String值,SQL=[" + sql + "]");
for (Object a : args) {
logger.debug("[" + a + "]");
}
}
try {
return (String) getJdbcTemplate().queryForObject(sql, args,
String.class);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
/**
* @see com.channelsoft.qframe.dao.IBaseJdbcDao#query(java.lang.String,
* org.springframework.jdbc.core.RowCallbackHandler)
*/
public void query(String sql, RowCallbackHandler handler)
throws DaoException {
if (logger.isDebugEnabled()) {
logger.debug("執(zhí)行查詢SQL語句,并逐條處理結(jié)果數(shù)據(jù),SQL=[" + sql + "]");
}
try {
getJdbcTemplate().query(sql, handler);
} catch (DataAccessException e) {
logger.warn(e.getMessage());
throw new DaoException(e.getMessage(), e);
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -