JDBC学习(三):封装工具类JDBCUtils类

简介: 为了以后方便进行数据库连接、数据库关闭、还有后面的连接池的操作等功能,现在将功能封装到JDBCUtils类当中,作为自己的一个工具箱。

为了以后方便进行数据库连接、数据库关闭、还有后面的连接池的操作等功能,现在将功能封装到JDBCUtils类当中,作为自己的一个工具箱。


package utils;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
/**
 * 操作数据库的工具类
 * @author pc
 *
 */
public class JDBCUtils {
  /***
   * 获取连接的操作
   * @return
   * @throws Exception
   */
  public static Connection getConnection() throws Exception {
    // 1. 加载配置文件
    InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
    Properties pros = new Properties();
    pros.load(is);
    // 2. 读取配置信息
    String user = pros.getProperty("user");
    String password = pros.getProperty("password");
    String url = pros.getProperty("url");
    String driverClass = pros.getProperty("driverClass");
    // 3. 加载驱动
    Class.forName(driverClass);
    // 4. 获取连接
    Connection conn = (Connection) DriverManager.getConnection(url, user, password);
    return conn;
  }
  /***
   * 关闭连接和preparedStatement
   * @param conn
   * @param ps
   */
  public static void closeResourse(Connection conn, PreparedStatement ps) {
    try {
      if(ps != null)
        ps.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    try {
      if(conn != null)
        conn.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
  /***
   * 关闭连接、preparedStatement和ResultSet
   * @param conn
   * @param ps
   * @param rs
   */
  public static void closeResourse(Connection conn, PreparedStatement ps, ResultSet rs) {
    try {
      if(ps != null)
        ps.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    try {
      if(conn != null)
        conn.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    try {
      if(rs != null)
        rs.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
  /***
   * 
   * 使用Druid数据库连接池技术
   */
  private static DataSource source;
  static {
    try {
      Properties pros = new Properties();
      InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("druid.properties");
      pros.load(is);
      source = DruidDataSourceFactory.createDataSource(pros);
    } catch (Exception e) {
      e.printStackTrace();
    }   
  }
  public static Connection getConnectionDruid() throws Exception {
    Connection conn = source.getConnection();
    return conn;
  }
}
相关文章
|
3月前
|
Java 数据库连接
JDBC跨平台封装工具类
JDBC跨平台封装工具类
|
2月前
|
SQL Java 数据库连接
老程序员分享:JDBC工具类封装、封装DAO方法与数据库表实体类封装的使用案列详情
老程序员分享:JDBC工具类封装、封装DAO方法与数据库表实体类封装的使用案列详情
|
3月前
|
Java 关系型数据库 MySQL
flea-db使用之封装JDBC接入
【4月更文挑战第6天】本篇 Huazie 介绍 Flea 框架下的 flea-db 模块中封装JDBC的逻辑
47 1
flea-db使用之封装JDBC接入
|
3月前
|
SQL Java 数据库连接
Java从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
ava从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
|
3月前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
37 0
|
3月前
|
SQL Java 数据库连接
JDBC如何封装成Mybaits持久层框架只需4
本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架。再而论述Mybatis作为一个数据持久层框架本身有待改进之处。
26 0
|
3月前
|
SQL Java 关系型数据库
Java学习—JDBC
Java学习—JDBC
|
3月前
|
SQL Java 数据库连接
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)(下)
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
497 1
|
3月前
|
SQL druid Java
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
46 0
|
3月前
|
SQL Java 数据库连接
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)(中)
JDBC技术【分页查询、数据库连接池、应用程序分层、封装通用的BaseDao】(四)-全面详解(学习总结---从入门到深化)
44 0