java如何连接sql数据库
连接SQL数据库的方法
Java连接SQL数据库通常使用JDBC(Java Database Connectivity)技术。以下是几种常见的连接方式:
使用JDBC直接连接
-
加载数据库驱动
不同数据库需要加载对应的驱动类:Class.forName("com.mysql.jdbc.Driver"); // MySQL Class.forName("oracle.jdbc.driver.OracleDriver"); // Oracle Class.forName("org.postgresql.Driver"); // PostgreSQL -
建立数据库连接
使用DriverManager获取连接:String url = "jdbc:mysql://localhost:3306/database_name"; String username = "root"; String password = "password"; Connection connection = DriverManager.getConnection(url, username, password); -
执行SQL语句
创建Statement或PreparedStatement对象执行查询:Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM table_name");
使用连接池连接
-
配置连接池(以HikariCP为例)
添加Maven依赖:<dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>4.0.3</version> </dependency> -
创建连接池配置
HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:mysql://localhost:3306/database_name"); config.setUsername("root"); config.setPassword("password"); config.addDataSourceProperty("cachePrepStmts", "true"); config.addDataSourceProperty("prepStmtCacheSize", "250"); -
获取连接
try (HikariDataSource ds = new HikariDataSource(config); Connection connection = ds.getConnection()) { // 使用连接执行操作 }
使用JPA/Hibernate连接
-
添加依赖

<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.6.5.Final</version> </dependency> -
配置persistence.xml
<persistence-unit name="examplePU"> <properties> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/db"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value="password"/> </properties> </persistence-unit> -
获取EntityManager
EntityManagerFactory emf = Persistence.createEntityManagerFactory("examplePU"); EntityManager em = emf.createEntityManager();
常见数据库连接示例
MySQL连接示例:
String url = "jdbc:mysql://localhost:3306/mydb?useSSL=false";
Connection conn = DriverManager.getConnection(url, "user", "password");
PostgreSQL连接示例:

String url = "jdbc:postgresql://localhost:5432/mydb";
Connection conn = DriverManager.getConnection(url, "user", "password");
Oracle连接示例:
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection conn = DriverManager.getConnection(url, "user", "password");
注意事项
-
使用后必须关闭连接
在finally块中关闭资源:try { // 获取和使用连接 } finally { if(connection != null) connection.close(); } -
使用try-with-resources
Java 7+推荐用法:try (Connection conn = DriverManager.getConnection(url, user, pass); Statement stmt = conn.createStatement()) { // 使用连接 } -
处理SQLException
所有JDBC操作都可能抛出SQLException,需要进行捕获处理。 -
使用PreparedStatement防注入
参数化查询更安全:PreparedStatement pstmt = connection.prepareStatement("SELECT * FROM users WHERE id = ?"); pstmt.setInt(1, userId);






