两个JDBC连接数据库的工具类
2016-10-18 15:49
351 查看
两个JDBC连接数据库的工具类
在以前我看过一些C#的东西,知道C#有一个DBHelper的工具类,各种返回DataTable,DataSet很方便,后来看Java,一直没看到有类似的东西,当然这其中有C#的Sql相关类可以脱离COnnection而存在,JDBC的Sql相关类必须保持Connection打开有关。后来发现JDBC的连接数据库的工具类只要完成简单的获得Connection,关闭各种Connection、Statement和ResultSet的功能。我也看过、写过这样的类,本来之前以为简单的数据库工具类在多线程下会有问题,所以用ThreadLocal又改了一个,结果测试的时候返现,简单的和用ThreadLocal改的大同小异。因为简单的数据库连接类每次getConnection都会new一个新的出来,多线程下并不会冲突。
下面是这两个类的代码,受限于C#的惯性思维,这两个类依旧命名为DBHelper
1. 使用ThreadLocal的
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class BaseDBHelper { private static final String userName=YOUR_USER_NAME; private static final String passWord=YOUR_PASS_WORD; private static final String connectionURL=YOUR_CONNECT_URL; private static final String driver="com.mysql.jdbc.Driver";//这里连接的是MySQL数据库 private static final ThreadLocal<Connection> connection=new ThreadLocal<Connection>(); public BaseDBHelper(){ } public static Connection getConnection(){ Connection conn=connection.get(); if(conn==null){ try{ Class.forName(driver); conn=DriverManager.getConnection(connectionURL, userName, passWord); connection.set(conn); }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); } } return conn; } public static void CloseConnection(Connection conn){ if(conn!=null){ try { conn.close(); connection.remove(); conn=null; } catch (SQLException e) { e.printStackTrace(); } } } public static void CloseStatement(PreparedStatement pstmt){ if(pstmt!=null){ try{ pstmt.close(); }catch(SQLException e){ e.printStackTrace(); } } } public static void CloseResultSet(ResultSet rs){ if(rs!=null){ try{ rs.close(); }catch(SQLException e){ e.printStackTrace(); } } } public static void CloseAll(ResultSet rs,PreparedStatement pstmt,Connection conn){ CloseResultSet(rs); CloseStatement(pstmt); CloseConnection(conn); } }
2. 一般的
package com.GraphicModel.DBHelper; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class BaseDBHelper { private static final String userName=YOUR_USER_NAME; private static final String passWord=YOUR_PASS_WORD; private static final String connectionURL=YOUR_CONNECT_URL; private static final String driver="com.mysql.jdbc.Driver";//这里连接的是MySQL数据库 public BaseDBHelper(){ } public static Connection getConnection(){ Connection conn=null; try{ Class.forName(driver); conn=DriverManager.getConnection(connectionURL, userName, passWord); }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); } return conn; } public static void CloseConnection(Connection conn){ if(conn!=null){ try { conn.close(); conn=null; } catch (SQLException e) { e.printStackTrace(); } } } public static void CloseStatement(PreparedStatement pstmt){ if(pstmt!=null){ try{ pstmt.close(); }catch(SQLException e){ e.printStackTrace(); } } } public static void CloseResultSet(ResultSet rs){ if(rs!=null){ try{ rs.close(); }catch(SQLException e){ e.printStackTrace(); } } } public static void CloseAll(ResultSet rs,PreparedStatement pstmt,Connection conn){ CloseResultSet(rs); CloseStatement(pstmt); CloseConnection(conn); } }
相关文章推荐
- JDBC连接数据库工具类及连接Access数据库示例
- JDBC工具类和JDBC连接数据库
- Java应用程序连接数据库--JDBC工具类及其改进
- JDBC概念原理和连接数据库以及工具类的书写
- JDBC连接数据库工具类以及测试
- JDBC连接数据库工具类及连接Access数据库示例
- jdbc数据库连接管理封装工具类,不同使用属性文件配置数据库连接信息(1)
- jdbc连接mysql连接数据库工具类
- 数据库连接JDBC工具类
- JDBC连接数据库(Mysql、抽取工具类)
- Java使用JDBC连接数据库完整的工具类实例
- JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库
- JDBC连接数据库工具类及连接Access数据库示例
- JDBC连接数据库工具类
- jdbc数据库连接管理封装工具类,不同使用属性文件配置数据库连接信息(3)
- JDBC数据库连接工具类
- java使用jdbc连接数据库工具类和jdbc连接mysql数据示例
- jdbc连接数据库工具类
- JDBC第一篇--【介绍JDBC、使用JDBC连接数据库、简单的工具类】
- JDBC实例--工具类升级,使用Apache DBCP连接池重构DBUtility,让连接数据库更有效,更安全