java jdbc数据库连接代码封装

来源:互联网 发布:java magic number 编辑:程序博客网 时间:2024/04/29 18:18

一个很好的封装jdbc数据库类

package cn.com.util;import java.sql.*;import java.util.*;/** * 数据库操作工具类 *  * @author Administrator *  */public class DBUtil {private static Connection con = null;// 连接对象private static PreparedStatement psmt = null;// 预编译对象private static ResultSet rs = null;// 结果集对象private static CallableStatement csmt = null;// 过程对象/** *  获得连接对象 * @return */public static Connection getConnetion() {try {Class.forName("com.mysql.jdbc.Driver");con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mytest","root","gc7923959");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blockSystem.out.println("找不到驱动");} catch (Exception e) {// TODO Auto-generated catch blockSystem.out.println("数据库连接失败");}return con;}/** *  * @param sql * @return */public static PreparedStatement getPreparedStatement(String sql) {con = getConnetion();try {psmt = con.prepareStatement(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return psmt;}/** * 查询获得所有 * @param sql * @return 结果集 */public static ResultSet getResultSet(String sql) {psmt = getPreparedStatement(sql);try {rs = psmt.executeQuery();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return rs;}/** * 更新操作 * @param sql * @param params * @return   受影响的行数 */public static int executeUpdate(String sql, List<Object> params) {int count = 0;psmt = getPreparedStatement(sql);bindPramas(psmt, params);try {count = psmt.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {CloseAll();}return count;}/** * 查询  带参数 * @param sql * @param params * @return  结果集 */public static ResultSet executeQuery(String sql, List<Object> params) {psmt = getPreparedStatement(sql);if (params != null) {bindPramas(psmt, params);}try {rs = psmt.executeQuery();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println(psmt);return rs;}public static CallableStatement getCallableStatement(String sql) {try {csmt = getConnetion().prepareCall(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return csmt;}public static Object executeCallObject(String sql,Map<Integer, Object> params) {Object obj = null;try {int index = 0;// 输入参数下标csmt = getCallableStatement(sql);for (int i = 1; i <= params.size(); i++) {if (params.get(i).toString().equals("Integer")) {csmt.registerOutParameter(i, Types.INTEGER);index = i;} else {csmt.setObject(i, params.get(i));}}csmt.execute();obj = csmt.getObject(index);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return obj;}public static void bindPramas(PreparedStatement psmt, List<Object> params) {int index = 0;if (params != null) {for (Object p : params) {try {psmt.setObject(index + 1, p);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}index++;}}}public static void CloseAll() {try {if (con != null) {con.close();}if (psmt != null) {psmt.close();}if (rs != null) {rs.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}


0 0
原创粉丝点击