(完整代码放在末尾自取)
对于初学者来说,理解和配置Mybatis、SSM(Spring + SpringMVC + MyBatis)以及连接池等相对复杂的技术可能会是一项挑战。特别是当涉及到数据库连接的配置时,如何确保代码的复用性和易于修改性往往是一个难题。本文将指导你如何简化MySQL连接的封装和使用。
首先,创建一个新的Maven项目,在pom.xml导入MySQL的依赖:
mysql
mysql-connector-java
8.0.23
等待下载完成后即可。
第二步,在resources(src\main\resources)文件夹下新建一个配置文件db.properties
配置文件中填写自己的数据库:
db.url=jdbc:mysql://localhost:3306/test_mysql?useUnicode=true&characterEncoding=UTF-8
db.username=root
db.password=123456
这里我使用本地连接,所以是localhost,如果是连接服务器需要替换为服务器IP
参数解释(理解可跳过):
链接地址后的test_mysql为要连接的数据库,请大家依据自己的实际名字替换
使用参数 useUnicode=true&characterEncoding=UTF-8 防止中文乱码
db.username为用户名
db.password为密码
第三步,编写封装类:
这里我使用类名为 DatabaseConnector ,大家可以自行命名
导入包:
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
编写 getConnection() 类,用于链接数据库:
public static Connection getConnection() throws SQLException {
try (InputStream input = DatabaseConnector.class.getClassLoader().getResourceAsStream("db.properties")) {
Properties prop = new Properties();
if (input == null) {
System.out.println("未找到配置文件");
return null;
}
// 加载配置文件
prop.load(input);
// 获取数据库配置
String url = prop.getProperty("db.url");
String username = prop.getProperty("db.username");
String password = prop.getProperty("db.password");
return DriverManager.getConnection(url, username, password);
} catch (Exception e) {
throw new SQLException("无法连接到数据库", e);
}
}
编写 closeConnection(Connection connection) 用于关闭数据库链接:
public static void closeConnection(Connection connection) {
try {
if (connection != null && !connection.isClosed()) {
connection.close();
System.out.println("连接关闭");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
第四步,写一个主类进行测试:
public static void main(String[] args) {
Connection connection = null;
try {
connection = getConnection();
System.out.println("成功连接到数据库!");
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeConnection(connection);
}
}
如下返回则正确连接。
整个DatabaseConnector代码:
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class DatabaseConnector {
public static Connection getConnection() throws SQLException {
try (InputStream input = DatabaseConnector.class.getClassLoader().getResourceAsStream("db.properties")) {
Properties prop = new Properties();
if (input == null) {
System.out.println("未找到配置文件");
return null;
}
// 加载配置文件
prop.load(input);
// 获取数据库配置
String url = prop.getProperty("db.url");
String username = prop.getProperty("db.username");
String password = prop.getProperty("db.password");
return DriverManager.getConnection(url, username, password);
} catch (Exception e) {
throw new SQLException("无法连接到数据库", e);
}
}
public static void closeConnection(Connection connection) {
try {
if (connection != null && !connection.isClosed()) {
connection.close();
System.out.println("连接关闭");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Connection connection = null;
try {
connection = getConnection();
System.out.println("成功连接到数据库!");
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeConnection(connection);
}
}
}