package com.springmvc.framework;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.CallableStatementCallback;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionTemplate;
@SuppressWarnings("unchecked")
public class BaseDao{
private JdbcTemplate jdbcTemplate;
private TransactionTemplate transactionTemplate;
private Logger log = Logger.getLogger(this.getClass().getName());
//获取记录,sql执行后有多少返回多少
public List<String[]> getRows(String sql) {
log.info(sql);
List<String[]> strs = (List<String[]>) this.jdbcTemplate.query(sql,
new ResultSetExtractor() {
public Object extractData(ResultSet rs)throws SQLException, DataAccessException{
ResultSetMetaData rsd = rs.getMetaData();
int num = rsd.getColumnCount();
List list = new ArrayList();
while (rs.next()) {
String[] strs = new String[num];
for (int i = 0; i < num; i++) {
strs[i] = rs.getString(i + 1);
}
list.add(strs);
}
return list;
}
});
return strs;
}
//获取记录,sql执行后有多少返回多少
public List<String[]> getRows(String sql, Object[] params) {
log.info(sql+" params:"+Arrays.toString(params));
List<String[]> strs = (List<String[]>) this.jdbcTemplate.query(sql,
params, new ResultSetExtractor() {
public Object extractData(ResultSet rs)
throws SQLException, DataAccessException {
ResultSetMetaData rsd = rs.getMetaData();
int num = rsd.getColumnCount();
List list = new ArrayList();
while (rs.next()) {
String[] strs = new String[num];
for (int i = 0; i < num; i++) {
strs[i] = rs.getString(i + 1);
}
list.add(strs);
}
return list;
}
});
return strs;
}
//获取单行记录
public synchronized String[] getRow(String sql) {
List<String[]> list = this.getRows(sql);
if (list.size() == 0)
return null;
else
return list.get(0);
}
//获取单行记录
public synchronized String[] getRow(String sql, Object[] params) {
List<String[]> list = this.getRows(sql, params);
if (list.size() == 0)
return null;
else
return list.get(0);
}
//执行单条sql insert、update、delete
public int execute(String sql) {
log.info(sql);
int r = this.jdbcTemplate.update(sql);
return r;
}
//prepared式执行单条sql
public int execute(String sql, Object[] params) {
log.info(sql+" params:"+Arrays.toString(params));
int r = this.jdbcTemplate.update(sql, params);
return r;
}
//批量执行sql
public void executeBatch(List<String> sql) {
log.info(sql);
String[] ss = new String[sql.size()];
for(int is=0 ; is<sql.size() ; is++){
ss[is] = sql.get(is);
}
final String[] sqls = ss;
this.transactionTemplate.execute(new TransactionCallbackWithoutResult(){
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
try{
jdbcTemplate.batchUpdate(sqls);
}catch(Exception e){
status.setRollbackOnly();
}
}
});
}
//prepared式批量执行insert,update,delete
public synchronized void executeBatch(String sql, final List<Object[]> params) {
log.info(sql);
this.jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
public int getBatchSize() {
return params.size();
}
public void setValues(PreparedStatement ps, int i)
throws SQLException {
Object[] o = params.get(i);
for (int y = 0; y < o.length; y++) {
ps.setObject(y + 1, o[y]);
}
log.info("params:"+Arrays.toString(o));
}
});
}
//调用存储过程
public synchronized void call(String prc) throws SQLException {
log.info("call:"+prc);
this.getJdbcTemplate().execute("{CALL "+prc+"}", new CallableStatementCallback(){
public Object doInCallableStatement(CallableStatement cs)
throws SQLException, DataAccessException {
cs.execute();
return null;
}
});
log.info("end call:"+prc);
}
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public TransactionTemplate getTransactionTemplate() {
return transactionTemplate;
}
public void setTransactionTemplate(TransactionTemplate transactionTemplate) {
this.transactionTemplate = transactionTemplate;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
springMVC框架,jar包齐全程序文件 (106个子文件)
BaseDao.class 5KB
TestAction.class 2KB
Systemup.class 2KB
BaseDao$4.class 2KB
BaseDao$2.class 1KB
BaseDao$1.class 1KB
BaseDao$3.class 1KB
IBaseDao.class 1KB
BaseDao$5.class 953B
BeanFactory.class 867B
TestDao.class 787B
Config.class 636B
.classpath 529B
org.eclipse.wst.common.component 465B
org.eclipse.wst.jsdt.ui.superType.container 49B
aspectjweaver-1.5.2.jar 1.81MB
guava-13.0.1.jar 1.8MB
bcprov-jdk16-146.jar 1.79MB
bcprov-jdk15-146.jar 1.73MB
chartengineapi.jar 1.49MB
lucene-core-2.4.1.jar 804KB
mysql-connector-java-5.1.18-bin.jar 771KB
jxl-2.6.6.jar 704KB
org.springframework.context-3.0.6.RELEASE.jar 655KB
javassist-3.12.0.GA.jar 618KB
commons-collections-3.2.1.jar 562KB
mchange-commons-java-0.2.2.jar 551KB
org.springframework.beans-3.0.6.RELEASE.jar 544KB
bcmail-jdk16-146.jar 490KB
bcmail-jdk15-146.jar 476KB
jackson-mapper-asl-1.5.2.jar 473KB
antlr-2.7.7.jar 435KB
org.springframework.web.servlet-3.0.6.RELEASE.jar 410KB
c3p0-0.9.2-pre4.jar 405KB
org.springframework.web-3.0.6.RELEASE.jar 389KB
standard.jar 384KB
org.springframework.jdbc-3.0.6.RELEASE.jar 377KB
org.springframework.core-3.0.6.RELEASE.jar 373KB
mail.jar 348KB
log4j-1.2.11.jar 342KB
org.springframework.orm-3.0.6.RELEASE.jar 327KB
org.springframework.aop-3.0.6.RELEASE.jar 314KB
dom4j-1.6.1.jar 307KB
commons-lang-2.6.jar 278KB
cglib-2.1.3.jar 276KB
commons-httpclient-3.0.1.jar 273KB
serializer-2.7.1.jar 272KB
org.springframework.transaction-3.0.6.RELEASE.jar 226KB
commons-beanutils-1.8.0.jar 226KB
org.springframework.test-3.0.6.RELEASE.jar 200KB
commons-net-2.0.jar 192KB
org.springframework.jms-3.0.6.RELEASE.jar 181KB
sitemesh-2.3.jar 178KB
org.springframework.web.portlet-3.0.6.RELEASE.jar 172KB
jackson-core-asl-1.5.5.jar 168KB
org.springframework.expression-3.0.6.RELEASE.jar 166KB
ognl-2.6.11.jar 164KB
commons-digester-1.8.jar 140KB
commons-io-1.4.jar 106KB
aspectjrt-1.5.0.jar 106KB
jaas.jar 102KB
org.springframework.context.support-3.0.6.RELEASE.jar 99KB
commons-dbcp-1.1.jar 98KB
commons-pool-1.4.jar 85KB
ezmorph-1.0.4.jar 84KB
commons-codec-1.5.jar 71KB
org.springframework.oxm-3.0.6.RELEASE.jar 60KB
commons-logging-1.1.1.jar 59KB
commons-fileupload-1.2.1.jar 56KB
activation.jar 53KB
javapns-jdk16-163.jar 52KB
org.springframework.asm-3.0.6.RELEASE.jar 52KB
chartexamplescoreapi.jar 44KB
commons-logging-api-1.1.jar 44KB
bctsp-jdk15-146.jar 39KB
org.springframework.aspects-3.0.6.RELEASE.jar 35KB
chartitemapi.jar 33KB
asm.jar 26KB
jstl.jar 20KB
slf4j-api-1.5.2.jar 17KB
asm-attrs.jar 16KB
jta-1.0.jar 9KB
slf4j-jcl-1.5.2.jar 7KB
jdbc2_0-stdext.jar 7KB
aopalliance-1.0.jar 4KB
org.springframework.instrument-3.0.6.RELEASE.jar 2KB
BaseDao.java 5KB
TestAction.java 2KB
Systemup.java 1KB
IBaseDao.java 667B
BeanFactory.java 572B
TestDao.java 321B
Config.java 304B
.jsdtscope 658B
index.jsp 834B
MANIFEST.MF 36B
.mymetadata 300B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.jdt.core.prefs 395B
.project 2KB
共 106 条
- 1
- 2
李遒
- 粉丝: 7
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页