这个要频繁使用我们可以自己封装一个工具类,方便自己使用
public class JdbcUtils {
private static String url = null;
private static String username = null;
private static String password = null;
private static String driverClassname = null;
static {
//java.util.Properties:属性集合列表 :属性列表中的每个键及其对应的值都是一个字符串。
try {
Properties pro = new Properties();
//当期类.class.getClassLoader().getResourceAsStream("配置文件的名称xxx.properties") ;---获取资源文件所在的输入流对象
InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbccon.properties");
pro.load(inputStream);
//获取键值
driverClassname = pro.getProperty("driverClassname");
url = pro.getProperty("url");
username = pro.getProperty("username");
password = pro.getProperty("password");
//注册驱动
Class.forName(driverClassname);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private JdbcUtils() {
}
//获取连接对象
public static Connection getConnection() throws Exception {
Connection connection = DriverManager.getConnection(
url,
username,
password
);
return connection;
}
//释放资源
//如果是针对ddl语句或者dml语句,Statement对象以及Connection对象关闭
public static void close(Statement stmt, Connection conn) {
close(null, stmt, conn);
}
//如果是针对DQL语句,ResultSet对象以及Statement以及Connection对象关闭
public static void close(ResultSet rs, Statement stmt, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
配置文件:xxxx.properties注意不要带空格,不要带""和;
driverClassname=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydatabase
username=root
password=zx123456