在Java编程中操作数据库时,都要先编写代码来获取数据库连接,而数据库连接只需要一次。因此这里将获取数据库连接的方法封装成一个工具类,只需要通过该类调用相应的方法就可以获取数据的连接。并且提供SQL语句的执行方法,用户只需要输入SQL语句即可完成对数据库的操作。
作为用于练习的简单工具,SQL语句的执行方法还可再做改进。
数据库连接工具代码:
package com.chy.about_sql.connectParser;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class ConnectionSQL {
//数据库驱动程序的类名
public static final String driver = "com.mysql.cj.jdbc.Driver";
private static String string = null;
private static PreparedStatement state = null;
private static Connection connection = null;
//public abstract String sqlString(String SQLString);
//将驱动程序放在静态代码块中,只在类加载的时候加载一次
static {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public ConnectionSQL() {
}
// 数据库连接
public static void dealConnection (String SQLName, String root, String password) {
try {
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/"
+ SQLName + "?useSSL=false&serverTimezone=UTC",
root,
password);
} catch (SQLException e) {
e.printStackTrace();
}
}
// SQL语句的执行方法,考虑到不同的SQL语句,
//将executeQuery和executeUpdate采用try/catch方式处理
public static String sqlString (String SQLString) {
try {
string = SQLString;
state = connection.prepareStatement(string);
try {
state.executeQuery();
} catch (SQLException e) {
state.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
return string;
}
// 关闭资源
public static void closeConnection (
ResultSet rs, PreparedStatement pst, Connection con) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pst != null) {
try {
pst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}