JDBC工具类(JDBC数据库链接工具类).docVIP

  • 2
  • 0
  • 约2.29万字
  • 约 3页
  • 2017-06-08 发布于河南
  • 举报
JDBC工具类(JDBC数据库链接工具类)

package com.tlw.util; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; /** * Jdbc工具类 * @author TongLingwei * */ public class JdbcUtil { //创建一个Property类的对象, 用于读取proprties文件 private static Properties prop = new Properties(); //创建一个TheadLocal类的对象, 用于存放当前线程正在使用的Connection private static final ThreadLocalConnection tl = new ThreadLocalConnection(); //静态代码块用于在类加载的时候读取配置文件 static { //去读取config.properties文件中关于数据库信息的配置,下面是一个config.properties文件的内容示例(以mysql为例) /** * driver=com.mysql.jdbc.Driver * url=jdbc:mysql://localhost/database * username=root * password=123 */ InputStream in = JdbcUtil.class.getResourceAsStream(config.properties); try { prop.load(in); } catch (IOException e) { e.printStackTrace(); throw new ExceptionInInitializerError(e); } } //获得当前线程正在使用的Connection public static Connection getConnection() throws SQLException { Connection conn = tl.get(); if(conn == null || conn.isClosed()) { try { //利用反射加载一个驱动类, 然后创建连接并把链接保存到ThreadLocal的实例中 (该驱动类及数据库链接信息通过prop获取) Class.forName(prop.getProperty(driver)); conn = DriverManager.getConnection(prop.getProperty(url),prop.getProperty(username),prop.getProperty(password)); tl.set(conn); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } return conn; } //施放资源的方法 public static void release(ResultSet rs, Statement stm, Connection conn) { try { if(rs != null) rs.close(); if(stm != null) stm.close(); if(conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }

文档评论(0)

1亿VIP精品文档

相关文档