自己写一个简单的JDBCUtil类,通过配置文件的方式完成:
首先配置文件放在项目路径下:
jdbc_mysql.properties:
#这是JDBC的加载驱动类路径
driverClassName=com.mysql.cj.jdbc.Driver
#这是url地址,要修改后面的数据库名字(/mydb)
url=jdbc:mysql://localhost:3306/mydb?serverTimezone=GMT%2b8&characterEncoding=utf8
#这是数据库用户名
username=root
#这是数据库密码
password=123
JDBCUtil.java
package cn.melo.util;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Properties;
public class JDBCUtil {
//私有化构造方法,不让创建对象
private JDBCUtil() {}
//给出参数
private static String driverClassName = null;
private static String url = null;
private static String username = null;
private static String password = null;
private static Connection conn = null;
private static FileInputStream fis = null;
private static Properties prop = null;
static {
try {
try {
//读取数据的流
fis = new FileInputStream("jdbc_mysql.properties");
//也可以这样获取流
//JDBCUtil.class.getResourceAsStream("jdbc_mysql.properties");
//创建Properties对象
prop = new Properties();
prop.load(fis);
driverClassName = prop.getProperty("driverClassName");
url = prop.getProperty("url");
username = prop.getProperty("username");
password = prop.getProperty("password");
}catch(IOException e) {
e.printStackTrace();
}finally {
fis.close();
}
//加载驱动
Class.forName(driverClassName);
//得到连接
conn = DriverManager.getConnection(url,username,password);
} catch (Exception e) {
e.printStackTrace();
}
}
//获取连接的方法
public static Connection getConnection() {
return conn;
}
//释放资源的方法
public static void close(Connection conn,PreparedStatement pre,
ResultSet rs) {
try {
if(rs != null) {
rs.close();
}
if(pre != null) {
pre.close();
}
if(conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 实现增加,删除或者修改的方法操作的方法
* @param sql 表示传入一个sql语句
* @param list 表示传入sql语句中参数的List集合,如果没有参数,传一个null
*/
public static int update(String sql,List<Object> list) throws SQLException {
//得到连接
Connection conn = getConnection();
//得到PreparedStatement对象
PreparedStatement prep = conn.prepareStatement(sql);
//为sql语句中的参数赋值
if(list != null) {
for (int i = 0; i < list.size(); i++) {
Object obj = list.get(i);
prep.setObject(i+1, obj);
}
}
int row = prep.executeUpdate();
close(conn, prep, null);
return row;
}
}