2026-10-17 13:09:10
在Java中,通过JDBC(Java Database Connectivity)API可以连接到多种类型的数据库,如MySQL、Oracle、SQL Server等。以下是连接不同类型数据库的通用步骤及注意事项:
1. 通用连接步骤加载JDBC驱动使用Class.forName()加载对应数据库的JDBC驱动类。例如:
// MySQLClass.forName("com.mysql.cj.jdbc.Driver");// OracleClass.forName("oracle.jdbc.driver.OracleDriver");// SQL ServerClass.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");获取数据库连接通过DriverManager.getConnection()方法,传入数据库URL、用户名和密码。URL格式因数据库而异:
// MySQLConnection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mydb", "user", "password");// OracleConnection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:ORCL", "user", "password");// SQL ServerConnection conn = DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;databaseName=mydb", "user", "password");创建Statement或PreparedStatement用于执行SQL语句:
Statement stmt = conn.createStatement();// 或使用PreparedStatement防止SQL注入PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE id = ?");pstmt.setInt(1, 1);执行查询或更新
查询:ResultSet rs = stmt.executeQuery("SELECT * FROM users");
更新:int rows = stmt.executeUpdate("INSERT INTO users VALUES (1, 'Alice')");
遍历结果集
while (rs.next()) { System.out.println(rs.getInt("id") + ": " + rs.getString("name"));}释放资源按顺序关闭ResultSet、Statement和Connection:
rs.close();stmt.close();conn.close();JDBC驱动依赖需将对应数据库的JDBC驱动JAR文件添加到项目依赖中(如Maven或手动导入)。例如:
<!-- MySQL --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version></dependency><!-- Oracle --><dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>21.5.0.0</version></dependency>连接URL格式各数据库URL格式不同:
MySQL: jdbc:mysql://[host][:port]/[database]
Oracle: jdbc:oracle:thin:@[host]:[port]:[SID] 或 jdbc:oracle:thin:@//[host]:[port]/[service_name]
SQL Server: jdbc:sqlserver://[host][:port];databaseName=[database]
SQL语法差异不同数据库的SQL语法可能有差异(如分页查询、日期函数等),需根据数据库调整SQL语句。
通过JDBC连接不同数据库的核心步骤一致,但需注意驱动类、URL格式和SQL语法的差异。合理使用异常处理和资源释放能确保程序稳定性。