自己封装的jdbc代码

package com.uw.dao;


import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import com.uw.cache.DataCaches;
import com.uw.util.XmlManager;


public class UWdao implements DaoInterface{


protected Connection con = null;
protected PreparedStatement ps = null;
protected Statement st = null;
protected ResultSet rs = null;

IPoolManager pm = new PoolManager();
XmlManager xmlManager = new XmlManager();

public final void createConnection(String dbName) {
// TODO Auto-generated method stub
con = pm.get(dbName);
}


/**
* @author 查询多字段,一行一行查询
* */
public final List<Map<String,String>> selectDataColumn(String sql){
System.out.println("开始执行语句---->" + sql);
List<Map<String,String>> listMap = new ArrayList<Map<String,String>>();
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery(); 
ResultSetMetaData rsmd = rs.getMetaData();
int rc = rsmd.getColumnCount();
while(rs.next()){
Map<String,String> mapdata = new HashMap<String,String>();
for(int i=1;i<=rc;i++){
String field = rsmd.getColumnLabel(i);
mapdata.put(field, rs.getString(field));
}
listMap.add(mapdata);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return listMap;
}

/**
* @author 查询单行数据,第一行
* */
public final Map<String,String> selectOneRowData(String sql){
System.out.println("开始执行语句---->" + sql);
Map<String,String> map = new HashMap<String,String>();
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int rsmdCount = rsmd.getColumnCount();
if(rs.next()){
for(int i=1;i<=rsmdCount;i++){
String fieldName = rsmd.getColumnLabel(i);
String fieldData = rs.getString(fieldName);
map.put(fieldName, fieldData);
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return map;
}

/**
* 查询kv数据,一个字段数据做key,一个字段数据做v
* @param sql sql语句
* @param key key字段
* @param val value字段
* @return Map<String,String>
*/
public final Map<String,String> selectKVColumn(String sql,String key,String val){
Map<String,String> dataMap = new HashMap<String,String>();
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
String kfielddata = rs.getString(key);
String vfielddata = rs.getString(val);
dataMap.put(kfielddata, vfielddata);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return dataMap;
}

/**
* @author 单个字段查询List数据
* */
public final List<String> selectColumnAllData(String sql,String columnName){
System.out.println("开始执行语句---->" + sql);
List<String> listStr = new ArrayList<String>();
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
listStr.add(rs.getString(columnName));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return listStr;
}

/**
* @author 单个字段查询单条数据查询
* */
public final String selectColumnOneData(String sql,String columnName){
System.out.println("开始执行语句---->" + sql);
String data = "";
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
if(rs.next()){
data = rs.getString(columnName);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return data;
}

/**
* 提取定义字段为最外层key,其它数据做value中的key存储
* @param sql
* @param kcolumn
* @return
*/
public final Map<String,Map<String,String>> getKStr_VMap(String sql,String kcolumn){
System.out.println("开始执行语句---->" + sql);
Map<String,Map<String,String>> mapMap = new HashMap<String,Map<String,String>>();
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery(); 
ResultSetMetaData rsmd = rs.getMetaData();
int rc = rsmd.getColumnCount();
while(rs.next()){
Map<String,String> mapdata = new HashMap<String,String>();
String cur_mapMapK = "";
rcfor:
for(int i=1;i<=rc;i++){
String field = rsmd.getColumnLabel(i);
if(field.equals(kcolumn)){
cur_mapMapK = rs.getString(field);
continue rcfor;
}else{
mapdata.put(field, rs.getString(field));
}
}
mapMap.put(cur_mapMapK, mapdata);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mapMap;
}

/**
* 提取定义字段为最外层key,其它数据做value中的list存储,查询相同的key
* @param sql
* @param kcolumn
* @return
*/
public final Map<String,List<Map<String,String>>> getKStr_VListMap(String sql,String kcolumn){
System.out.println("开始执行语句---->" + sql);
Map<String,List<Map<String,String>>> mapMap = new HashMap<String,List<Map<String,String>>>();
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery(); 
ResultSetMetaData rsmd = rs.getMetaData();
int rc = rsmd.getColumnCount();
List<Map<String,String>> lm = null;//new ArrayList<Map<String,String>>();
while(rs.next()){
Map<String,String> mapdata = new HashMap<String,String>();
String cur_K = "";
for(int i=1;i<=rc;i++){
String field = rsmd.getColumnLabel(i);
if(field.equals(kcolumn)){
cur_K = rs.getString(field);
}else{
mapdata.put(field, rs.getString(field));
}
}
if(mapMap.containsKey(cur_K)){
lm = mapMap.get(cur_K);
lm.add(mapdata);
}else{
lm = new ArrayList<Map<String,String>>();
mapMap.put(cur_K, lm);
lm.add(mapdata);
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mapMap;
}

/**
* 一个字段做key,一个字段做val,val为list,查询相同的key
* @param sql
* @param kcolumn
* @param vcolumn
* @return
*/
public final Map<String,List<String>> getKStr_VList(String sql,String kcolumn,String vcolumn){
System.out.println("开始执行语句---->" + sql);
Map<String,List<String>> mapMap = new HashMap<String,List<String>>();
try {
ps = con.prepareStatement(sql);
rs = ps.executeQuery(); 
ResultSetMetaData rsmd = rs.getMetaData();
int rc = rsmd.getColumnCount();
while(rs.next()){
for(int i=1;i<rc;i++){
String dataK = rs.getString(kcolumn);
String dataV = rs.getString(vcolumn);
if(mapMap.containsKey(dataK)){
mapMap.get(dataK).add(dataV);
}else{
List<String> dataList = new ArrayList<String>();
dataList.add(dataV);
mapMap.put(dataK, dataList);
}
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mapMap;
}

/**
* @author 事物执行
* */
public final boolean operatorSql(String sql){
boolean b = false;
System.out.println("开始执行语句---->" + sql);
try {
con.setAutoCommit(false);
ps = con.prepareStatement(sql);
ps.execute();
con.commit();
b = true;
} catch (SQLException e) {
try {
con.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally{
b = false;
e.printStackTrace();
}
}
return b;
}

/**
* @author 批执行,list必须为ArrayList
* */
public final void batchStatement(List listStr){
System.out.println("开始处理批量sql的执行------->"+listStr.get(0).toString());
try {
con.setAutoCommit(false);
st = con.createStatement();
int sl = listStr.size();
if(sl != 0 && sl > 45000){
int slcy = sl/45000;
int slys = sl%45000;
for(int i=0;i<slcy;i++){
for(int j=i*45000;j<(i+1)*45000;j++){
st.addBatch(listStr.get(j).toString());
}
}
st.executeBatch();
con.commit();
st.clearBatch();
if(slys > 0){
for(int i=(slcy*45000);i<(slcy*45000+slys);i++){
st.addBatch(listStr.get(i).toString());
}
st.executeBatch();
con.commit();
}
}else{
for(int i=0;i<sl;i++){
st.addBatch(listStr.get(i).toString());
}
st.executeBatch();
con.commit();
}
} catch (SQLException e) {
try {
con.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}

public void closeConnection(String dbname) {
// TODO Auto-generated method stub
try {
if(con!=null){
pm.freeCon(con, dbname);
}
if(st != null){
st.close();
st = null;
}
if(ps != null){
ps.close();
ps = null;
}
if(rs != null){
rs.close();
rs = null;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


public List<Object> selectDataColumn_obj(String sql, String classStr,String isCache,String cacheid) {
System.out.println("开始执行语句---->" + sql);
try {
List<Object> objList = new ArrayList<Object>();
Class<?> clazz = Class.forName(classStr);
Field[] fields = clazz.getDeclaredFields();
int fieldsLength = fields.length;
if(fieldsLength==0){
throw new Exception("无字段空对象异常");
}
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
Object[] mos = null;
Object o = null;
while(rs.next()){
o = clazz.newInstance();
for(int i=0;i<fieldsLength;i++){
String cur_fieldName = fields[i].getName();
if(cur_fieldName.equals("serialVersionUID")){
continue;
}
String cur_data=rs.getString(cur_fieldName);
cur_fieldName = cur_fieldName.substring(0, 1).toUpperCase()+cur_fieldName.substring(1);
String setMethodName = "set"+cur_fieldName;
Class[] cls = new Class[]{String.class};
Method method = clazz.getDeclaredMethod(setMethodName, cls);
mos = new Object[]{cur_data};
method.invoke(o, mos);
}
objList.add(o);
}
if(isCache.equals("true")){
DataCaches dataCache = new DataCaches();
dataCache.setCache(cacheid, objList);
}
return objList;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

public static void main(String[] args) {
/*XmlManager xm = new XmlManager();
File file = new File("F:/svn2111/MyaiopCode/src/uw-bin.xml");
xm.setXmlManagerFile(file);
xm.init();
PoolManager pm = new PoolManager();
pm.createPool();
Test t = new Test(pm);
t.test1();*/
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:sqlserver://192.168.1.58:1433; DatabaseName=aaa","sa","123");
System.out.println(con==null);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

































  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值