package com.tyhb.server.core.db;
import java.beans.PropertyDescriptor;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SuppressWarnings("unchecked")
public class Dao<T> {
final private static int BEAN = 1;
final private static int BEAN_LIST = 2;
final private static int MAP = 3;
final private static int MAP_LIST = 4;
final private static int ARRAY = 5;
final private static int ARRAY_LIST = 6;
// private static Hashtable prebuildSql = new Hashtable();
private static Vector<SysSqlLog> sqlLogVector;
private static int logSqlCount = 10;
private ConnectionManager connectionManager;
private final Logger logger = LoggerFactory.getLogger(getClass());
public Dao() {
connectionManager = ConnectionManager
.getInstance(ConnectionManager.DB_MYSQL);
}
public Dao(int dbType) {
connectionManager = ConnectionManager.getInstance(dbType);
}
/* *//**
* 查询出结果,保存在XML中
*/
/*
* public String getXml(String sql) { Object[] result = (Object[])
* query(ARRAY, sql, null, null); Clob clob = (Clob) result[0]; return
* clobToString(clob); }
*
* public String getXml(String sql, Object param1) { Object[] result =
* (Object[]) query(ARRAY, sql, new Object[] { param1 }, null); Clob clob =
* (Clob) result[0]; return clobToString(clob); }
*
* public String getXml(String sql, Object param1, Object param2) { Object[]
* result = (Object[]) query(ARRAY, sql, new Object[] { param1, param2 },
* null); Clob clob = (Clob) result[0]; return clobToString(clob); }
*
* public String getXml(String sql, Object param1, Object param2, Object
* param3) { Object[] result = (Object[]) query(ARRAY, sql, new Object[] {
* param1, param2, param3 }, null); Clob clob = (Clob) result[0]; return
* clobToString(clob); }
*/
/**
* 查询出一条记录,保存在Object[]中 @
*/
public Object[] getArray(String sql) {
return (Object[]) query(ARRAY, sql, null, null);
}
public Object[] getArray(String sql, Object param1) {
return (Object[]) query(ARRAY, sql, new Object[] { param1 }, null);
}
public Object[] getArray(String sql, Object param1, Object param2) {
return (Object[]) query(ARRAY, sql, new Object[] { param1, param2 },
null);
}
public Object[] getArray(String sql, Object param1, Object param2,
Object param3) {
return (Object[]) query(ARRAY, sql, new Object[] { param1, param2,
param3 }, null);
}
/**
* 查询出一组存在于Map中的对象,专用于投影查询 @
*/
public List<Map<String, Object>> getMapList(String sql) {
return (List) query(MAP_LIST, sql, null, null);
}
public List<Map<String, Object>> getMapList(String sql, Object param1) {
return (List) query(MAP_LIST, sql, new Object[] { param1 }, null);
}
public List<Map<String, Object>> getMapList(String sql, Object param1,
Object param2) {
return (List) query(MAP_LIST, sql, new Object[] { param1, param2 },
null);
}
public List<Map<String, Object>> getMapList(String sql, Object param1,
Object param2, Object param3) {
return (List) query(MAP_LIST, sql, new Object[] { param1, param2,
param3 }, null);
}
/**
* 查询出一条记录,保存在Map中 @
*/
public Map<String, Object> getMap(String sql) {
return (Map) query(MAP, sql, null, null);
}
public Map<String, Object> getMap(String sql, Object param1) {
return (Map) query(MAP, sql, new Object[] { param1 }, null);
}
public Map<String, Object> getMap(String sql, Object param1, Object param2) {
return (Map) query(MAP, sql, new Object[] { param1, param2 }, null);
}
public Map<String, Object> getMap(String sql, Object param1, Object param2,
Object param3) {
return (Map) query(MAP, sql, new Object[] { param1, param2, param3 },
null);
}
/**
* 根据类名以及id查询出一个对像 @
*/
private Object getBean(Object pojo, Integer id) {
StringBuffer sql = new StringBuffer();
sql.append("select * from ");
sql.append(getTableName(pojo));
sql.append(" where id = ?");
return getBean(pojo.getClass(), sql.toString(), id);
}
private Object buildField(Object[] array) {
if (array != null && array.length > 0) {
return array[0];
} else {
return null;
}
}
public Object getField(String sql) {
return buildField((Object[]) query(ARRAY, sql, null, null));
}
public Object getField(String sql, Object param1) {
return buildField((Object[]) query(ARRAY, sql, new Object[] { param1 },
null));
}
public Object getField(String sql, Object param1, Object param2) {
return buildField((Object[]) query(ARRAY, sql, new Object[] { param1,
param2 }, null));
}
public Object getField(String sql, Object param1, Object param2,
Object param3) {
return buildField((Object[]) query(ARRAY, sql, new Object[] { param1,
param2, param3 }, null));
}
private List<Object> buildFieldList(List<Object[]> arrayList) {
if (arrayList != null && arrayList.size() > 0) {
List fieldList = new ArrayList();
for (Object[] array : arrayList) {
fieldList.add(array[0]);
}
return fieldList;
} else {
return null;
}
}
public List<Object> getFieldList(String sql) {
List<Object[]> arrayList = (List<Object[]>) query(ARRAY_LIST, sql,
null, null);
return buildFieldList(arrayList);
}
public List<Object> getFieldList(String sql, Object param1) {
List<Object[]> arrayList = (List<Object[]>) query(ARRAY_LIST, sql,
new Object[] { param1 }, null);
return buildFieldList(arrayList);
}
public List<Object> getFieldList(String sql, Object param1, Object param2) {
List<Object[]> arrayList = (List<Object[]>) query(ARRAY_LIST, sql,
new Object[] { param1, param2 }, null);
return buildFieldList(arrayList);
}
public List<Object> getFieldList(String sql, Object param1, Object param2,
Object param3) {
List<Object[]> arrayList = (List<Object[]>) query(ARRAY_LIST, sql,
new Object[] { param1, param2, param3 }, null);
return buildFieldList(arrayList);
}
/**
* 查询出一个pojo对象 @
*/
public T getBean(String sql) {
return (T) query(BEAN, sql, null, getClassDefinition(sql));
}
public T getBean(String sql, Object param1) {
return (T) query(BEAN, sql, new Object[] { param1 },
getClassDefinition(sql));
}
public T getBean(String sql, Object param1, Object param2) {
return (T) query(BEAN, sql, new Object[] { param1, param2 },
getClassDefinition(sql));
}
public T getBean(String sql, Object param1, Object param2, Object param3) {
return (T) query(BEAN, sql, new Object[] { param1, param2, param3 },
getClassDefinition(sql));
}
/** ***************************************************************************** */
/**
* 查询出一个投影对象 @
*/
public Object getBean(Class c, String sql) {
return query(BEAN, sql, null, c);
}
public
没有合适的资源?快使用搜索试试~ 我知道了~
java导出excel(写入到excel后再下载)示例
共96个文件
class:31个
java:30个
jar:15个
4星 · 超过85%的资源 需积分: 50 146 下载量 31 浏览量
2010-11-24
17:18:37
上传
评论 4
收藏 3.46MB RAR 举报
温馨提示
该资源是一个rar压缩包形式的源代码,主要演示了java如何导出数据到Excle并保存到本地电脑、以及在web中如何导出数据库中的数据到Excel并下载。
资源推荐
资源详情
资源评论
收起资源包目录
excelweb(写入到excel后再下载)示例.rar (96个子文件)
excelweb
.settings
com.genuitec.eclipse.j2eedt.core.prefs 1KB
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 406B
org.eclipse.jdt.core.prefs 330B
src
com
tyhb
server
core
db
DBConfig.java 2KB
Dao.java 39KB
proxool.xml 2KB
TransactionBatch.java 1024B
SysSqlLog.java 1KB
ConnectionManager.java 4KB
service
UserDao.java 8KB
UserService.java 541B
Test.java 62B
PoManagerUserInfo.java 2KB
org
apache
commons
dbutils
QueryLoader.java 4KB
handlers
ArrayListHandler.java 2KB
ArrayHandler.java 3KB
ColumnListHandler.java 3KB
package.html 902B
KeyedHandler.java 6KB
MapHandler.java 2KB
BeanHandler.java 3KB
ScalarHandler.java 3KB
BeanListHandler.java 3KB
MapListHandler.java 2KB
GenericListHandler.java 2KB
DbUtils.java 8KB
ProxyFactory.java 6KB
BasicRowProcessor.java 6KB
package.html 1KB
RowProcessor.java 4KB
ResultSetHandler.java 2KB
QueryRunner.java 20KB
BeanProcessor.java 17KB
ResultSetIterator.java 4KB
wrappers
package.html 877B
SqlNullCheckedResultSet.java 17KB
StringTrimmedResultSet.java 3KB
.project 1KB
WebRoot
META-INF
MANIFEST.MF 39B
userinfo.jsp 1KB
WEB-INF
web.xml 381B
classes
com
tyhb
server
core
db
Dao.class 35KB
SysSqlLog.class 2KB
ConnectionManager.class 3KB
proxool.xml 2KB
TransactionBatch.class 1KB
DBConfig.class 2KB
service
Test.class 285B
PoManagerUserInfo.class 2KB
UserDao.class 7KB
UserService.class 839B
org
apache
commons
dbutils
handlers
BeanListHandler.class 1KB
ArrayHandler.class 1KB
ScalarHandler.class 1KB
MapListHandler.class 999B
KeyedHandler.class 2KB
GenericListHandler.class 861B
package.html 902B
MapHandler.class 1KB
ColumnListHandler.class 1KB
BeanHandler.class 1KB
ArrayListHandler.class 1011B
ResultSetHandler.class 250B
DbUtils.class 4KB
ResultSetIterator.class 2KB
package.html 1KB
QueryRunner.class 8KB
BasicRowProcessor$CaseInsensitiveHashMap.class 2KB
BasicRowProcessor.class 2KB
ProxyFactory.class 3KB
RowProcessor.class 486B
QueryLoader.class 2KB
wrappers
package.html 877B
StringTrimmedResultSet.class 2KB
SqlNullCheckedResultSet.class 7KB
BeanProcessor.class 7KB
lib
proxool-0.9.1.jar 196KB
activation.jar 55KB
commons-beanutils.jar 184KB
proxool-cglib.jar 327KB
mail.jar 348KB
logback-classic-0.9.9.jar 117KB
logback-core-0.9.9.jar 188KB
mysql-connector-java-5.0.8-bin.jar 528KB
flex-messaging-core.jar 629KB
commons-logging.jar 59KB
commons-io.jar 82KB
commons-lang.jar 237KB
slf4j-api-1.5.5.jar 21KB
jxl.jar 708KB
flex-messaging-common.jar 88KB
index.jsp 4KB
.mymetadata 298B
.classpath 1KB
.myeclipse
共 96 条
- 1
fygk_china
- 粉丝: 0
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.dta
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.xlsx
- Reeds+Shepp曲线算法讲解和实现.pdf
- 毕业设计基于SpringBoot+MyBatisPlus+MySQL+Vue的外卖配送信息系统源代码+数据库
- 词向量(Word Embeddings)是自然语言处理(NLP)领域的一种重要技术.txt
- Surfer,线性函数
- MyBatis 的动态 SQL 是其核心特性之一.txt
- 时代的sdddsddsddsd
- 基于哈希链表的简单人员信息管理系统
- 其他类别JdonFramework开源框架 v5.1 Build20071025-jdonframework-5.1.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页