java如何链接数据库
使用JDBC连接数据库
JDBC(Java Database Connectivity)是Java连接数据库的标准API。以下是使用JDBC连接MySQL数据库的示例代码。
添加JDBC驱动依赖
在Maven项目中,需在pom.xml中添加MySQL驱动依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
编写连接代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnection {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
try {
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println("数据库连接成功");
connection.close();
} catch (SQLException e) {
System.out.println("数据库连接失败");
e.printStackTrace();
}
}
}
使用连接池管理连接
生产环境中建议使用连接池,如HikariCP。
添加HikariCP依赖

<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>
配置连接池
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public class ConnectionPoolExample {
public static void main(String[] args) {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydatabase");
config.setUsername("root");
config.setPassword("password");
config.setMaximumPoolSize(10);
try (HikariDataSource dataSource = new HikariDataSource(config);
Connection connection = dataSource.getConnection()) {
System.out.println("通过连接池获取连接成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
使用ORM框架简化操作
MyBatis和Hibernate是常用的ORM框架。
MyBatis示例配置

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
MyBatis使用示例
SqlSessionFactory factory = new SqlSessionFactoryBuilder()
.build(Resources.getResourceAsStream("mybatis-config.xml"));
try (SqlSession session = factory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.selectUser(1);
}
异常处理最佳实践
数据库操作必须正确处理异常和资源释放。
try (Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users");
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
// 处理结果集
}
} catch (SQLException e) {
// 记录日志并处理异常
logger.error("数据库操作异常", e);
throw new RuntimeException(e);
}
数据库连接参数优化
常见连接参数可优化性能:
useSSL=false:禁用SSL(测试环境)serverTimezone=UTC:设置时区autoReconnect=true:自动重连characterEncoding=UTF-8:设置编码
完整URL示例:
jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC&autoReconnect=true&characterEncoding=UTF-8






