java jdbc数据库连接代码封装

原创 2015年11月20日 11:21:46

一个很好的封装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 block
			System.out.println("找不到驱动");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			System.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 block
			e.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 block
			e.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 block
			e.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 block
			e.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 block
			e.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 block
			e.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 block
					e.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 block
			e.printStackTrace();
		}

	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

javaweb JDBC 数据库连接mysql 配置代码 (直接可用)

1、加入Mysql 的JDBC架包 2、数据库配置文件 db.properties 3、数据库配置文件读取ReadProperties.java 4、数据库连接工厂类 ConnectionFacto...

标准的JDBC数据库连接代码(面试)

有什么不合适的,欢迎多多指出,谢谢。面试时时间充裕的情况下,尽量写完美的程序。import java.sql.Connection; import java.sql.DriverManager; im...

JDBC-数据库连接代码优化二

1.创建DTO类创建IdEntity抽象实体类package com.jdbc.entity;public abstract class IdEntity { protected Long i...

java jdbc数据库连接

  • 2010-11-16 20:40
  • 239KB
  • 下载

Java_jdbc 基础笔记之十三 数据库连接(DAO)

public class DAO { // INSERT, UPDATE, DELETE 操作都可以包含在其中 public void update(String sql, Objec...

jdbc—Java开发数据库连接

  • 2014-12-21 21:24
  • 152KB
  • 下载

java JDBC数据库连接

【Java】JDBC数据库连接

【是什么】       JDBC全称JAVADataBaseConnectivity,即Java数据库连接,它是一种可执行SQL语句的Java API。程序员可以通过JDBCAPI连接到关系数据库,并...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)