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封装连接数据库

  • 2017年11月30日 16:34
  • 818KB
  • 下载

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

import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverMan...
  • HUXU981598436
  • HUXU981598436
  • 2015年07月27日 13:58
  • 4158

java之对JDBC的完整封装(兼容多种数据库)

目前此代码我只用过mysql和oracle数据库测试过,但相信其它数据库都是可以的,只要导入你需要操作的数据库jar包,驱动等就可,下面上代码: import java.sql.Callab...
  • weixin_38303684
  • weixin_38303684
  • 2017年10月17日 17:31
  • 304

java jdbc数据库连接代码封装

一个很好的封装jdbc数据库类 package cn.com.util; import java.sql.*; import java.util.*; /** * 数据库操作工具类 * ...
  • u011868076
  • u011868076
  • 2015年11月20日 11:21
  • 414

Java连接数据库 JDBC封装类 带使用例子

  • 2014年08月06日 22:54
  • 4.74MB
  • 下载

封装JDBC—非框架开发必备的封装类

一些小型的项目,有时不想使用框架如MyBatis,Hibernate等开发时,往往在数据持久化时操作比较繁琐,以下提供了对JDBC的封装类,简化JDBC操作。 为了更客观展示MyJDBC,我们通过一...
  • weixin_36380516
  • weixin_36380516
  • 2017年06月07日 21:43
  • 1754

最基础的java JDBC连接数据库代码并关闭连接

//加载驱动         try {             Class.forName("com.mysql.jdbc.Driver");             String url="jdb...
  • lifuxiangcaohui
  • lifuxiangcaohui
  • 2012年02月22日 11:33
  • 2101

javaJDBC链接数据库封装

javajdbc连接数据库操作
  • QingKing520
  • QingKing520
  • 2016年10月26日 20:08
  • 514

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

import java.sql.CallableStatement;   import java.sql.Connection;   import java.sql.DriverManager; ...
  • qq_35038153
  • qq_35038153
  • 2017年08月15日 09:47
  • 88

java JDBC链接数据库代码以及步骤

前提:如果没有数据库的驱动,需要首先配置数据库的驱动。步骤: ->在项目中新建文件夹lib ->拷贝jar文件到lib文件夹下边 ->“右击” ->”build path” ->”add t...
  • u013383042
  • u013383042
  • 2016年09月25日 21:42
  • 3063
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java jdbc数据库连接代码封装
举报原因:
原因补充:

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