数据库程序开发考试题:JDBC连接与操作

需积分: 0 0 下载量 99 浏览量 更新于2024-08-05 收藏 119KB PDF 举报
"这篇资料包含了2016-2017年度第一学期数据库程序开发考试的相关题目,主要涉及Java编程与SQL操作,特别是使用JDBC进行数据库连接和查询。" 在Java中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一套API。以下是对题目中涉及知识点的详细解释: 1. 加载JDBC驱动: `Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");` 这行代码的作用是动态加载指定的数据库驱动类,使得Java应用程序能够识别并使用IBM DB2数据库。在较新的JDBC版本中,通常推荐使用`DriverManager.registerDriver()`或依赖管理工具自动处理驱动加载。 2. 创建数据库连接: ```java String url = "jdbc:db2:sample"; String userid = "db2admin"; String passwd = "db2admin"; Connection sample = DriverManager.getConnection(url, userid, passwd); ``` 这里通过`DriverManager.getConnection()`方法创建了一个到数据库的连接。`url`是数据库的JDBC URL,`userid`和`passwd`是登录数据库的用户名和密码。 3. 执行SQL查询: ```java String sql = "select NAME, JOB, SALARY from staff Where ID=10"; ResultSet executeQuery = stmt.executeQuery(sql); ``` 这段代码定义了一个SQL查询,用于从`staff`表中选取ID为10的员工的`NAME`, `JOB`, `SALARY`字段,然后通过Statement对象的`executeQuery()`方法执行查询,返回一个ResultSet对象。 4. PreparedStatement的使用: ```java PreparedStatement pstmt = sample.prepareStatement("SELECT name FROM Temp WHERE id=?"); ``` 当SQL语句需要包含参数时,使用PreparedStatement可以提高安全性,防止SQL注入。这里的`?`是占位符,通过`pstmt.setXXX()`方法设置参数值。 5. 执行SQL更新语句: ```java String sql = "UPDATE temp SET salary=salary*5"; int count = pstmt.executeUpdate(); ``` `executeUpdate()`方法用于执行DML(数据操纵语言)语句,如INSERT, UPDATE, DELETE。返回值`count`表示受影响的行数。如果`count=3`,但实际表未改变,可能是因为事务没有提交,或者数据库配置了只读事务。 6. 关闭JDBC资源: 在程序结束前,应该按照“先打开后关闭”的顺序关闭资源,以释放系统资源,避免内存泄漏。正确的关闭顺序是ResultSet -> Statement -> Connection: ```java if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } ``` 这样的顺序确保在关闭每个对象时,不会因为上游对象已关闭而引发异常。 这些知识点展示了JDBC的基本操作,包括连接数据库、执行SQL查询和更新、以及资源管理。在实际开发中,通常会使用try-with-resources语句来简化资源关闭,并且使用连接池管理数据库连接,以提高性能和效率。