最初,学习的是通过DriverManager来实现数据库的连接。后来又学习了数据库连接池的使用,就很少用这种方法了。故在此记录一下,便于复习。
一般来说,数据库连接分为以下几步:
- 准备需要的url、username、password、driver
- 加载驱动
- 获取连接
- 进行操作
- 释放连接
DriverManager实现方式(一)
没有配置文件,将所有东西都写在源代码中。
public static void main(String[] args) {
// 准备需要的url、username、password、driver
String url = "jdbc:mysql://localhost:3306/bookstore";
String username = "root";
String password = "1234";
String driver = "com.mysql.jdbc.Driver";
String sql = "";
Connection connection = null;
Statement statement = null;
ResultSet resulet = null;
try {
// 加载数据库驱动
Class.forName(driver);
// 获取connection
connection = DriverManager.getConnection(url, username, password);
System.out.println(connection);
// 获取statement
statement = connection.createStatement();
// 执行sql,获取result
resulet = statement.executeQuery(sql);
// 释放result
while (resulet.next()) {
// 进行操作
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 释放result
if (resulet != null) {
try {
resulet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 释放statement
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 释放connection
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
DriverManager实现方式(二)
将数据库的连接与释放分离出来,构成JDBCUtils类,并拥有配置文件,将数据库的基本信息写在配置文件中。利用JDBCUtils类来完成数据库的连接。
public class JDBCTools {
public static Connection getConnection() throws Exception {
Properties properties = new Properties();
InputStream inStream = JDBCTools.class.getClassLoader()
.getResourceAsStream("jdbc.properties");
properties.load(inStream);
// 1. 准备获取连接的 4 个字符串: user, password, jdbcUrl, driverClass
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String jdbcUrl = properties.getProperty("jdbcUrl");
String driverClass = properties.getProperty("driverClass");
// 2. 加载驱动: Class.forName(driverClass)
Class.forName(driverClass);
// 3. 调用
// DriverManager.getConnection(jdbcUrl, user, password)
// 获取数据库连接
Connection connection = DriverManager.getConnection(jdbcUrl, user,
password);
return connection;
}
public static void releaseDB(ResultSet resultSet, Statement statement,
Connection connection) {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
配置文件jdbc.properties
user=root
password=1234
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql:///bookstore