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实现

数据结构中的数组之增删改查操作-java实现

PostgreSQL数据库、表空间、角色及用户

本文转自:http://blog.chinaunix.net/uid-354915-id-3499975.html   一、创建数据库 1、通过pgAdmin创建数据库TestDb1: 打开数...
  • xrdlqy
  • xrdlqy
  • 2013年04月02日 15:39
  • 794

jdbc连接sqlserver数据库连接代码

  • 2017年08月30日 19:42
  • 2KB
  • 下载

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

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

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

有什么不合适的,欢迎多多指出,谢谢。面试时时间充裕的情况下,尽量写完美的程序。import java.sql.Connection; import java.sql.DriverManager; im...
  • JYH1314
  • JYH1314
  • 2016年06月07日 16:28
  • 404

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

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

JDBC Java数据库连接技术简介

  • 2015年12月16日 21:49
  • 6.2MB
  • 下载

java JDBC数据库连接

  • 2015年11月26日 10:59
  • 1KB
  • 下载

JAVA数据库连接-JDBC

JDBC(Java Data BaseConnectivity ,java数据库连接)是一种用于执行SQL语句的JAVA API,,它由一组用Java语言编写的类和接口组成。         ...

jdbc—Java开发数据库连接

  • 2014年12月21日 21:24
  • 152KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java jdbc数据库连接代码封装
举报原因:
原因补充:

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