jdbc 连接数据库封装类,可返回map,或者vo(自用)
?3.工具类
package com.coffee.databaseservices.database.DBConnection;import java.lang.reflect.InvocationTargetException;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.coffee.bean.db.accounts.modelObjectVo;import com.mysql.jdbc.Connection; public class DBTools {// start *****************************************************内部数据库用*************************************************/* * 连接的数据库,查询游戏数据库数据库中的 条目数 * return intNum */ public static int getCount(String sgDatabaseIp,String sgDatabasePort,String sgDatabaseName, String sgUserName,String sgDatabasePassword,String sql) {int totalRecordNum=0;DbConnection bdconn=new DbConnection(sgDatabaseIp,sgDatabasePort,sgDatabaseName,sgUserName,sgDatabasePassword);//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){totalRecordNum =bdconn.queryCountNum(sql);bdconn.closeDatabase();}return totalRecordNum;}/* * 连接的数据库,查询游戏数据库中的 list <Map> 集合 * 每条集合包含一个list 适合单表或者多表查询 根据select 后的字段自行封装 * return list * */ public static List getForList(String sgDatabaseIp,String sgDatabasePort,String sgDatabaseName,String sgUserName,String sgDatabasePassword,String sql) {List list=null;DbConnection bdconn=new DbConnection(sgDatabaseIp,sgDatabasePort,sgDatabaseName,sgUserName,sgDatabasePassword);//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){list=bdconn.queryForList(sql);bdconn.closeDatabase();}return list;}/* * 连接的数据库,查询游戏数据库中的 list <vo> 集合 * 每条集合包含一个list 适合单表或者多表查询 根据select 后的字段自行封装 * clazz 要封装的 VO * return list */ public static List getObjectForList(String sgDatabaseIp,String sgDatabasePort,String sgDatabaseName,String sgUserName,String sgDatabasePassword,String sql,Class clazz) {List list=null;DbConnection bdconn=new DbConnection(sgDatabaseIp,sgDatabasePort,sgDatabaseName,sgUserName,sgDatabasePassword);//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){Connection conn=(Connection) bdconn.getDbConnection();list=new ORMClassSql().getObjectsForList(sql, clazz, conn);bdconn.closeDatabase();if (conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}return list;}/* * 连接的数据库,查询游戏数据库中的 单条 Vo 集合 * 适合单表或者多表查询 根据select 后的字段自行封装成一个 javaBean * clazz 要封装的 VO * return list */ public static Object getObjectForBean(String sgDatabaseIp,String sgDatabasePort,String sgDatabaseName,String sgUserName,String sgDatabasePassword,String sql,Class clazz) {Object obj=null;DbConnection bdconn=new DbConnection(sgDatabaseIp,sgDatabasePort,sgDatabaseName,sgUserName,sgDatabasePassword);//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){Connection conn=(Connection) bdconn.getDbConnection();try {obj=new ORMClassSql().getObject(sql, clazz, conn);} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IllegalAccessException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (InvocationTargetException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (Exception e1) {// TODO Auto-generated catch blocke1.printStackTrace();}finally{bdconn.closeDatabase();if (conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}return obj;}/* * 连接的数据库,查询游戏数据库中的 list <Map>集合 * 每条集合包含一个list 适合单表或者多表查询 根据select * fields 保留想要封装的字段 * return list */ public static List getForList(String sgDatabaseIp,String sgDatabasePort,String sgDatabaseName,String sgUserName,String sgDatabasePassword,String sql,ArrayList fields) {List list=null;DbConnection bdconn=new DbConnection(sgDatabaseIp,sgDatabasePort,sgDatabaseName,sgUserName,sgDatabasePassword);//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){list=bdconn.queryForList(sql,fields);bdconn.closeDatabase();}return list;}/* * 连接的数据库,对数据库 增、删、改 操作 * return intNum */ public static int dbUpdateForServer(String sgDatabaseIp,String sgDatabasePort,String sgDatabaseName,String sgUserName,String sgDatabasePassword,String sql) {boolean updateFlag=false;int updateflag=0;DbConnection bdconn=new DbConnection(sgDatabaseIp,sgDatabasePort,sgDatabaseName,sgUserName,sgDatabasePassword);//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){updateFlag=bdconn.dbUpdate(sql);if(!updateFlag){System.out.println("插入操作失败");}else{updateflag=1;}}return updateflag;}/* * 连接的数据库,对数据库 增、删、改 操作 * 预编译 * return intNum */ public static int dbPreparedUpdateForServer(String sgDatabaseIp,String sgDatabasePort,String sgDatabaseName,String sgUserName,String sgDatabasePassword,String sql,Object[] paras) {boolean updateFlag=false;int updateflag=0;DbConnection bdconn=new DbConnection(sgDatabaseIp,sgDatabasePort,sgDatabaseName,sgUserName,sgDatabasePassword);//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){updateFlag=bdconn.PreparedStatementUpdate(sql,paras);if(!updateFlag){System.out.println("插入操作失败");}else{updateflag=1;}}return updateflag;}// end *****************************************************内部数据库用*************************************************// start *****************************************************外部数据库用*************************************************/* * 连接的数据库,对数据库 增、删、改 操作 * return intNum */ public static int dbUpdate(String sql) {boolean updateFlag=false;int updateflag=0;DbConnection bdconn=new DbConnection();//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){updateFlag=bdconn.dbUpdate(sql);if(!updateFlag){System.out.println("插入操作失败");}else{updateflag=1;}}return updateflag;}/* * 连接的数据库,对数据库 增、删、改 操作 * 预编译 * return intNum */ public static int dbPreparedUpdate(String sql,Object[] paras) {boolean updateFlag=false;int updateflag=0;DbConnection bdconn=new DbConnection();//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){updateFlag=bdconn.PreparedStatementUpdate(sql,paras);if(!updateFlag){System.out.println("插入操作失败");}else{updateflag=1;}}return updateflag;}/* * 连接的数据库,查询Account 数据库中的条目数 * return intNum */ public static int getAccountCount(String sql) {int totalRecordNum=0;DbConnection bdconn=new DbConnection();//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){totalRecordNum =bdconn.queryCountNum(sql);bdconn.closeDatabase();}return totalRecordNum;}/* * 连接的数据库,查询account 数据库游戏数据库中的 list <Map> 集合 * 每条集合包含一个list 适合单表或者多表查询 根据select 后的字段自行封装 * return list */ public static List getAccount_ForList(String sql) {List list=null;DbConnection bdconn=new DbConnection();//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){list=bdconn.queryForList(sql);bdconn.closeDatabase();}return list;}/* * 连接的数据库,查询游戏数据库中的 单条 Vo 集合 * 适合单表或者多表查询 根据select 后的字段自行封装成一个 javaBean * clazz 要封装的 VO * return list */ public static Object getAccountObjectForBean(String sql,Class clazz) {Object obj=null;DbConnection bdconn=new DbConnection();//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){Connection conn=(Connection) bdconn.getDbConnection();try {obj=new ORMClassSql().getObject(sql, clazz, conn);} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IllegalAccessException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (InvocationTargetException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (Exception e1) {// TODO Auto-generated catch blocke1.printStackTrace();}finally{bdconn.closeDatabase();if (conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}return obj;}/* * 连接的数据库,查询游戏数据库中的 list <Map> 集合 * 每条集合包含一个list 适合单表或者多表查询 根据select * fields 保留想要封装的字段 * return list */ @SuppressWarnings("unchecked")public static List getAccount_ForList(String sql,ArrayList fields) {List list=null;DbConnection bdconn=new DbConnection();//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){list=bdconn.queryForList(sql,fields);bdconn.closeDatabase();}return list;}// end *****************************************************外部数据库用*************************************************/*........................................多条查询共通模版...................................................................*//** * * 执行SQl 语句返回一个结果集 * @param 用于执行的select语句 * * 2013-02-22 * @author liutao * @return modelObjectVo queryForModel */public static modelObjectVo queryForModel(String sgDatabaseIp,String sgDatabasePort,String sgDatabaseName,String sgUserName,String sgDatabasePassword,String sql) {modelObjectVo obj= new modelObjectVo();DbConnection bdconn=new DbConnection(sgDatabaseIp,sgDatabasePort,sgDatabaseName,sgUserName,sgDatabasePassword);//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if(flag){obj = bdconn.queryForModel(sql);bdconn.closeDatabase();}return obj;}/** * * @param sgDatabaseIp * @param sgDatabasePort * @param sgDatabaseName * @param sgUserName * @param sgDatabasePassword * @param sqls * @return * @description 执行批量sql语句(增、删、改等批量的sql操作) * @version 1.0 * @author liutao * @update Apr 20, 2013 9:41:18 AM */@SuppressWarnings("static-access")public static int[] exeBatch(String[] sqls){int[] result= null;DbConnection bdconn=new DbConnection();//连接数据初始化boolean flag =bdconn.dbConnectionSuccess();//返回连接对象 ,false为连接失败 true 为成功if (flag) {java.sql.Connection con =bdconn.getDbConnection();boolean flags = bdconn.supportBatch(con);if (flags) {result = bdconn.goBatch(con, sqls);}}return result;} }?下面是完整的下载包,代码难免有缺陷,忘多多指点