Java Database Connectivity基本连接操作工具类
package JDBC.restudy;
import java.io.*;
import java.sql.*;
import java.util.Properties;
/**
* @author 18175
* @version 2.0
* 描述:通过该工具类可以简化JDBC的操作
*/
@SuppressWarnings("all")
public class JDBCUtil {
/**
* 私有构造器,不允许new 对象
*/
private JDBCUtil() {
}
private static String url;
private static String user;
private static String password;
/*
MySQL5以后的jar驱动包可以省略的注册操作
Class.forName(com.jdbc.cj.mysql.Driver)
*/
static {
try {
//获取记录url,user,password信息文件
Properties pro = new Properties();
//方法1类加载返回io流,利用Properties类进行数据获取
Class<JDBCUtil> jc = JDBCUtil.class;
ClassLoader cl = jc.getClassLoader();
pro.load(cl.getResourceAsStream("localhost.properties"));
//方法2:自定义io流获取文件目录,加载文件到Properties对象中
/*
pro.load(new FileReader("D:\\ideaproject\\javaStudy\\smallproject\\src\\localhost.properties"));
*/
//方法3:资源捆绑
/*
资源捆绑包含特定区域的对象。当你的程序需要一个特定区域的资源。
ResourceBundle localhost = ResourceBundle.getBundle("localhost");
url=localhost.getString("url");
user=localhost.getString("user");
password=localhost.getString("password");
*/
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @return
* 获取链接
*/
public static Connection getConnection(){
try {
Connection connection = DriverManager.getConnection(url, user, password);
return connection;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
/**
* 释放资源的操作
* @param conn
* @param st
* @param ps
* @param rs
*/
@Deprecated
public static void colseSrc(Connection conn, Statement st,PreparedStatement ps, ResultSet rs){
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st!=null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void colseSQL(Connection conn,Statement st){
colseSQL(conn,st,null);
}
public static void colseSQL(Connection conn,Statement st,ResultSet re){
if (re!=null){
try {
re.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st!=null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Druid “国产之光” 链接工具类基本操作
注意导入jar包:druid-1.2.2.jar
配置配置文件:任意文件名的proterties文件
driver=com.mysql.cj.jdbc.Driver
# 代表当前的sql连接对象
url=jdbc:mysql:///educational_administration_system?useSSL=true&characterEncoding=utf-8&serverTimezone=UTC
username=用户
password=密码
initialSize=初始化链接数
maxActive=最大连接数
maxWait=等待时间
package com.zyx.datasource.druid;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.sql.*;
import java.util.Properties;
/**
* 工具类:获取连接池,获取连接对象,释放资源
*/
@SuppressWarnings("all")
public class DruidUtil {
//成员变量
private static DataSource ds;
//静态代码块
static {
//Class<DruidUtil> dc = DruidUtil.class;
//InputStream resourceAsStream = dc.getResourceAsStream("localhost.properties");
try {
Properties pro =new Properties();
//获取方式有多种
//方法一
//pro.load(new FileReader("D:\\ideaproject\\javaStudy\\smallproject\\src\\localhost.properties"));
//方法二
Class<DruidUtil> utilClass = DruidUtil.class;
pro.load(utilClass.getClassLoader().getResourceAsStream("localhost.properties"));
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
e.printStackTrace();
}
}
//获取链接对象
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
//释放资源
public static void closeSQL(Connection conn, Statement st) {
closeSQl(conn,st,null);
}
public static void closeSQl(Connection conn,Statement st,ResultSet re){
if (re!=null){
try {
re.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st!=null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//归还conn给连接池
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//获取连接池
public static DataSource getDs(){
return ds;
}
}