1、 习题 一、选择题(答案可能不止一个) 1.使用下面的Connection 的哪个方法可以建立一个PreparedStatement接口( ) A.createPrepareStatement() B.prepareStatement() C.createPreparedStatement() D.preparedStatement() 2.在JDBC中可以调用数据库的存储过程的接口是( ) A.Statement B.PreparedStatement C.CallableStatement D.PrepareStatement 3.下面的描述正确
2、的是( ) A.PreparedStatement继承自Statement B.Statement继承自PreparedStatement C.ResultSet继承自Statement D.CallableStatement继承自PreparedStatement 4.下面描述中,错误的是( ) A.Statement的executeQuery()方法会返回一个结果集 B.Statement的executeUpdate()方法会返回是否更新成功的boolean值 C.使用ResultSet中的getString()可以获得一个对应于数据库中char类
3、型的值 D.ResultSet中的next()方法会使结果集中的下一行成为当前行 5.如果数据库中某个字段为numeric型,可以通过结果集中的哪个方法获取?( ) A.getNumeric() B.getDouble() C.setNumeric() D.setDouble() 6.在JDBC中使用事务,想要回滚事务的方法是( ) A.Connection的commit() B.Connection的setAutoCommit() C.Connection的rollback() D.Connection的close() 7.查询操作的结果是(
4、 ) A. 整数 B. ResultSet C. Set D. Vector 8.增删改操作的结果是( ) A. 整数 B. ResultSet C. Set D. Vector 9.结果集中,能够实现指针下移一条记录是( )方法 A. new() B. next() C. nextPointer() D. last() 10.要得到结果集double类型字段的数据,可调用( )方法 A. get("价格") B. getInt("价格") C. getString("价格") D. getDouble("价格") 二、填
5、空题 1.JDBC的典型用法是“三层结构”,即:客户端、____________、____________; 2.加载驱动程序的语句是_______________________________; 3.创建Connection对象的语句是_______________________________; 4.生成Statement对象的语句是_______________________________; 5.执行查询操作的语句是_______________________________; 6.执行增删改操作的语句是_______________________________
6、 三、思考题 1.请简述一下Statement 和 PreparedStatement之间的区别; 2.简述进行数据库连接、操作的主要步骤; 3.谈一谈你对Transaction(事务)的认识,描述一下Transaction的四个特性; 4.说明JDBC事务所涉及的方法,并加以解释; 5.结果集可滚动有什么优点?怎样实现结果集的更新? 四、编程题 1.现有一个名为课程.mdb的Access数据库,只包含一个表courses,该表的字段如下: 课程代码(文本,长度6,主键),课程名称(文本,长度60),教学承担系(文本,长度30), 学分(单精度),考核方式(文本,
7、长度10),如图1所示: 图1 course表记录 现要求采用JDBC/ODBC桥方式连接数据库,编程显示出“软件工程系”开设的所有“考试”课程的信息。 2.在IP为172.16.42.234的服务器上安装了SQL Server 2005数据库系统,创建了一个名为corejava的数据库,用户名为sise,密码为software,具有读、写权限。在该数据库中还包含一个users表,该表各字段的内容如下表1所示: 表1 users表结构 字段名 数据类型 是否允许为空 说明 name Varchar(10) 否 用户名,主
8、键 password Varchar(20) 否 密码 age int 是 年龄 sex Varchar(2) 是 性别 email Varchar(100) 否 电子邮箱 resume Varchar(200) 是 个人简历 请编程实现数据库连接,并具备如下功能: (1)输入用户资料:用户名、密码、年龄、性别、电子邮箱、个人简历,能将这些信息保存到数据库中; (2)输入用户名、密码,能判断该用户是否已注册。 3.利用JDBC连接数据库,只要提供访问数据库的相关参数:驱动程序、URL、用户名、密码 即可,之后执行相应的SQL语句。现在请你编
9、写一个数据库操作的通用类,实现查询、增删改操作功能。要求如下: class MyDB { //连接数据库 public Connection getConnection(String driverName, String URL, String userName, String password){ …. } /*执行SQL语句,有可能是select、insert、update、delete语句中的任何一个,要对参数sql先进行判断,再分类处理:如为查询语句,需将结果集中的所有行、列数据显示输出;若是增删改语句,除执行对应操作外,还要输出“增加(修改、删除)xx条记录”。*/
10、public void execute(Connection connString, String sql){ …. } } 之后,请你创建一个DBTest类,使用有关参数和SQL语句来操作一个具体的数据库,以检验MyDB类的功能。 (提示: ①可调用String类startsWith(String prefix)方法来判断sql参数是属于select、insert、update、delete语句中的哪一种,再执行对应操作; ②执行查询语句时,要输出结果集的内容,这需要用到输出列的数目、名称或序号、各列的数据类型等内容。由于select语句是以参数方式提供,编写程序时无法得到有关信息,可求助“元数据”来实现,由ResultSet对象调用getMetaData()方法可得到 ResultSetMetaData对象,通过ResultSetMetaData对象的getColumnCount()可得到select语句查询的列数,之后用ResultSet对象调用getObject(int columnIndex)可得到各列数据(参数是列序号,从1开始),具体内容请查阅API文档。 )
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818