【第22期】观点:IT 行业加班,到底有没有价值?

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();
		}

	}
}


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

相关文章推荐

java(JDBC连接数据库)[完整版封装]

import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverMan...

java(JDBC连接数据库)[完整版封装]

import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

javaJDBC链接数据库封装

javajdbc连接数据库操作

完整java开发中JDBC连接数据库代码和步骤

JDBC连接数据库   •创建一个以JDBC连接数据库的程序,包含7个步骤:    1、加载JDBC驱动程序:       在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java...

完整java开发中JDBC连接数据库代码和步骤

JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤:

JAVA使用JDBC连接数据库做JSON封装和解析的例子

JAVA使用JDBC连接数据库做JSON封装和解析的例子 该例子是使用SOLServer2007采用JDBC连接数据库并且查询封装成JSON的数据格式的例子。 直接上代码—— 主函数 ...

java数据库连接(一)--从最简单地jdbc连接说起

JDBCJDBC全称"Java DataBase Connectivity",它是一套面向对象的应用程序接口(API),并且制定了统一的访问各类关系数据库的标准接口,为各个数据库厂商提供了标准的接口实...

JDBC:java数据库连接

JDBC:java DataBase Connecitvityjava数据库连接JDBC可以做的三件事:与数据库建立连接发送操作数据库的语句处理结果java连接数据库的一般步骤1、加载数据库连接驱动:...

jdbc 数据库连接基础代码

public static void test() throws Exception { Connection conn=null; String userName = "root"; String userPassword = "root"...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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