19JAVA第九单元练习题 JDBC数据库
- 格式:pdf
- 大小:113.66 KB
- 文档页数:3
jdbc选择题及解析题目1,JDBC是什么意思?解析,JDBC是Java数据库连接(Java Database Connectivity)的缩写,它是Java语言用于执行与数据库的连接和操作的API。
JDBC提供了一种标准的方法,使得Java应用程序能够与各种不同类型的数据库进行交互,无论是关系型数据库还是非关系型数据库。
题目2,JDBC的工作原理是什么?解析,JDBC的工作原理是通过Java应用程序调用JDBC API来与数据库进行交互。
首先,应用程序通过JDBC驱动程序管理器加载适当的数据库驱动程序。
然后,应用程序使用驱动程序管理器来获取数据库连接。
一旦建立了连接,应用程序可以创建并执行SQL语句,以及处理查询结果。
最后,应用程序关闭连接并释放资源。
题目3,JDBC的主要组件有哪些?解析,JDBC的主要组件包括驱动程序管理器(DriverManager)、数据库驱动程序(Database Driver)、连接接口(Connection)、语句接口(Statement)、结果集接口(ResultSet)等。
驱动程序管理器用于加载数据库驱动程序,数据库驱动程序负责与特定类型的数据库进行通信,连接接口用于建立和管理与数据库的连接,语句接口用于执行SQL语句,结果集接口用于处理查询结果。
题目4,JDBC的优点是什么?解析,JDBC的优点包括跨平台性、灵活性和可移植性。
由于JDBC是基于Java语言的,因此可以在各种操作系统上运行,实现了跨平台性。
此外,JDBC提供了灵活的API,允许开发人员编写复杂的数据库操作,同时也保持了与数据库的独立性,这增加了应用程序的可移植性。
题目5,JDBC与ODBC有何区别?解析,JDBC是Java数据库连接的API,而ODBC是Open Database Connectivity的缩写,是微软提出的用于连接数据库的API。
JDBC是基于Java语言的,而ODBC是基于C语言的。
第9章1.JDBC驱动程序可分为以下4种。
(1)JDBC-ODBC桥接的ODBC驱动程序;(2)用Java编写的JDBC本地API驱动程序;(3)JDBC网络的纯Java驱动程序;(4)本地协议的纯Java驱动程序2.访问数据库使用的类为管理数据库驱动类DriverManager,DriverManager管理了一组JDBC驱动程序的基本服务。
可以认为DriverManager是JDBC的管理层,作用于用户与驱动程序之间,同时跟踪可用的驱动程序,并在数据库与相应的驱动程序之间建立连接,还可以处理驱动程序登录时间限制、跟踪消息的显示等。
相关的接口有:数据库连接接口Connection(Connection是与特定数据库的连接,其作用是连接上下文执行SQL语句并返回结果);发送SQL 语句接口Statement(Statement用于执行静态SQL语句并返回它所生成结果的对象);可执行动态SQL语句的接口PreparedStatement(先发送带参数的SQL语句,再发送一组参数值);查询结果集接口ResultSet(Statement执行SQL语句后返回ResultSet结果集)。
3.通过JDBC操作数据库的步骤如下。
(1)加载JDBC驱动程序。
(2)创建数据库连接。
(3)执行SQL语句。
(4)处理结果集。
(5)关闭连接。
4.常用的数据库操作包括在数据库中增加数据、删除数据、修改数据和查询数据4类。
增加数据:insert into 表名称values 字段1值, 字段2值, ……删除数据:delete from 表名称where 删除条件修改数据:update 表名称set 字段1名=字段1值where 条件查询数据:select 要查询的内容from 表名称where 查询条件。
《Java基础入门》课后习题答案第9章JDBC一、填空题1、Java Database Connectivity2、java.sql.*3、classpath4、registerDriver()5、next()二、判断题1、对2、错3、对4、错5、错三、选择题1、A2、C3、A4、D5、AC四、简答题1、JDBC是一套用于执行SQL语句的Java API。
应用程序可通过这套API连接到关系型数据库,并使用SQL语句来完成对数据库中数据的查询、新增、更新和删除等操作。
2、(1)加载数据库驱动(2)通过DriverManager获取数据库连接(3)通过Connection对象获取Statement对象(4)使用Statement执行SQL语句(5)操作ResultSet结果集(6)关闭连接,释放资源3、(1)代码的可读性和可维护性(2)PreparedStatement尽最大可能提高性能,因为预编译语句有可能被重复调用,所以语句在被DB 的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中(相当于一个函数)就会得到执行。
(3)极大地提高了安全性传。
递给PreparedStatement对象的参数可以被强制进行类型转换,使开发人员可以确保在插入或查询数据时与底层的数据库格式匹配;在公共Web站点环境下,防止Sq注入问题。
五、编程题1、参考答案public static void main(String[] args) throws Exception {// int i = insert();// int i = delete();// int i = update();select();// System.out.println(i);}// 获取连接对象private static Connection getConn() {String driver = "com.mysql.jdbc.Driver";String url = "jdbc:mysql://localhost:3306/javatest";String username = "root";String password = "1234";Connection conn = null;try {Class.forName(driver); // classLoader,加载对应驱动conn = DriverManager.getConnection(url, username, password);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}// 插入操作private static int insert() {Connection conn = getConn();int i = 0;String sql = "insert into tb_user(name,sex,email,birthday) values(?,?,?,?)";PreparedStatement pstmt;try {pstmt = conn.prepareStatement(sql);pstmt.setString(1, "itcast");pstmt.setString(2, "男");pstmt.setString(3, "itcast@");pstmt.setString(4, "2000-01-01");i = pstmt.executeUpdate();pstmt.close();conn.close();} catch (SQLException e) {e.printStackTrace();}return i;}// 删除操作private static int delete() {Connection conn = getConn();int i = 0;String sql = "delete from tb_user where name=?";PreparedStatement pstmt;try {pstmt = conn.prepareStatement(sql);pstmt.setString(1, "itcast");i = pstmt.executeUpdate();} catch (Exception e) {e.printStackTrace();}return i;}// 更新操作private static int update() {Connection conn = getConn();int i = 0;String sql = "update tb_user set name=? where name =?";PreparedStatement pstmt;try {pstmt = conn.prepareStatement(sql);pstmt.setString(1, "itcast");pstmt.setString(2, "abc");i = pstmt.executeUpdate();System.out.println("resutl: " + i);pstmt.close();conn.close();} catch (SQLException e) {e.printStackTrace();}return i;}// 查询操作private static void select() {Connection conn = getConn();String sql = "select * from tb_user";PreparedStatement pstmt;try {pstmt = conn.prepareStatement(sql);ResultSet rs = pstmt.executeQuery();while (rs.next()) {int id = rs.getInt("id"); // 通过列名获取指定字段的值String name = rs.getString("name");String sex = rs.getString("sex");String email = rs.getString("email");Date birthday = rs.getDate("birthday");System.out.println(id + " | " + name + " | " + sex + " | " + email + " | " + birthday);}pstmt.close();conn.close();} catch (Exception e) {e.printStackTrace();}}2、参考答案import java.sql.*;public class Test {public static void main(String[] args) throws Exception {transferAccounts(2, 1, 100);}public static void transferAccounts(int fromid,int toid,int transferMoney) throwsException{ Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/jdbc";Connection con = DriverManager.getConnection(url,"root", "root");int fromMoney = getMoney(fromid);// 转出账户String sql = "update tb_count set money=? where id =?";PreparedStatement ps = con.prepareStatement(sql);ps.setInt(1, fromMoney-transferMoney);ps.setInt(2, fromid);// 转入账户int toMoney = getMoney(toid);String sql2 = "update tb_count set money=? where id =?";PreparedStatement ps2 = con.prepareStatement(sql2);ps2.setInt(1, toMoney+transferMoney);ps2.setInt(2, toid);ps.executeUpdate();ps2.executeUpdate();ps.close();ps2.close();con.close();}// 获取当前账户id的账户余额public static int getMoney(int id) throws Exception{Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/jdbc";Connection con = DriverManager.getConnection(url,"root", "root");String sql = "select money from tb_count where id =?";PreparedStatement ps = con.prepareStatement(sql);ps.setInt(1, id);ResultSet resultSet = ps.executeQuery();int money = 0;while(resultSet.next()){money = resultSet.getInt(1);}ps.close();con.close();return money;}}。
一、选择题1.有关JDBC的选项正确的是哪一个?A.JDBC是一种被设计成通用的数据库连接技术,JDBC技术不光可以应用在Java程序里面,还可以用在C++这样的程序里面。
B.JDBC技术是SUN公司设计出来专门用在连接Oracle数据库的技术,连接其他的数据库只能采用微软的ODBC解决方案C.微软的ODBC和SUN公司的JDBC解决方案都能实现跨平台使用,只是JDBC的性能要高于ODBCD.JDBC只是个抽象的调用规范,底层程序实际上要依赖于每种数据库的驱动文件2.选择JDBC可以执行的语句(多选)A.DDLB.DCLC.DMLD.以上都可以3.选择Java程序开发中推荐使用的常用数据库(多选)a.Oracleb.SQL Server 2000c.MySQLd.DB24.哪个不是JDBC用到的接口和类?a.Systemb.Classc.Connectiond.ResultSet5.使用Connection 的哪个方法可以建立一个PreparedStatement接口?A.createPrepareStatement()B.prepareStatement()C.createPreparedStatement()D.preparedStatement()6.下面的描述正确的是什么?A.PreparedStatement继承自StatementB.Statement继承自PreparedStatementC.ResultSet继承自StatementD.CallableStatement继承自PreparedStatement7.下面的描述错误的是什么?A.Statement的executeQuery()方法会返回一个结果集B.Statement的executeUpdate()方法会返回是否更新成功的boolean值C.使用ResultSet中的getString()可以获得一个对应于数据库中char类型的值D.ResultSet中的next()方法会使结果集中的下一行成为当前行8.如果数据库中某个字段为numberic型,可以通过结果集中的哪个方法获取?A.getNumberic()B.getDouble()C.getBigDecimal ()D.getFloat()9.在Jdbc中使用事务,想要回滚事务事务的方法是什么?A.Connection的commit()B.Connection的setAutoCommit()C.Connection的rollback()D.Connection的close()10.在JDBC编程中执行完下列SQL语句SELECT name, rank, serialNoFROM employee,能得到rs的第一列数据的代码是哪两个?A.rs.getString(0);B.rs.getString("name");C.rs.getString(1);D.rs.getString("ename");11.下面关于PreparedStatement的说法错误的是什么A.PreparedStatement继承了StatementB.PreparedStatement可以有效的防止SQL注入C.PreparedStatement不能用于批量更新的操作D.PreparedStatement可以存储预编译的Statement,从而提升执行效率12.下面的选项加载MySQL驱动正确的是哪一个?A.Class.forname("org.gjt.mm.mysql.Driver");B.Class.forname("org.gjt.mysql.jdbc.Driver");C.Class.forname("org.git.mm.mysql.Driver");D.Class.forname("org.git.mysql.jdbc.Driver");13.下面的选项加载MySQL驱动正确的是哪一个?A.Class.forname("com.mysql.JdbcDriver");B.Class.forname("com.mysql.jdbc.Driver");C.Class.forname("com.mysql.driver.Driver");D.Class.forname("com.mysql.jdbc.MySQLDriver");14.下面代码加载Oracle驱动正确的是哪一个?A.DriverManager.register("oracle.driver.OracleDriver");B.DriverManager.forname("oracle.driver.OracleDriver");C.DriverManager.load("oracle.driver.OracleDriver");D.DriverManager.newInstance("oracle.driver.OracleDriver");15.有关Connection描述错误的是哪一个?A.Connection是Java程序与数据库建立的连接对象,这个对象只能用来连接数据库,不能执行SQL语句。
1.在JDBC中,用于连接数据库的接口是什么?o A. PreparedStatemento B. DriverManagero C. ResultSeto D. Connection答案:D解析:在JDBC中,Connection接口用于表示与数据库的连接。
2.下列哪个类用于处理SQL语句的执行结果?o A. Statemento B. ResultSeto C. Connectiono D. Driver答案:B解析:ResultSet类用于处理执行SQL语句的结果集。
3.JDBC中,用于执行SQL语句的类是?o A. Connectiono B. PreparedStatemento C. ResultSeto D. DriverManager答案:B解析:PreparedStatement类用于执行预编译的SQL语句,Statement类则用于执行简单的SQL语句。
4.要使用JDBC连接数据库,哪个方法用于加载JDBC驱动?o A. Connection.getConnection()o B. DriverManager.getDriver()o C. Class.forName()o D. PreparedStatement.prepareStatement()答案:C解析:Class.forName()用于加载JDBC驱动,这是在连接数据库前必须要执行的步骤。
5.下面哪个选项不是PreparedStatement相对于Statement的优点?o A. 预编译SQL语句提高执行效率o B. 处理结果集更灵活o C. 防止SQL注入o D. 设置参数更方便答案:B解析:PreparedStatement在性能、安全性和参数设置上优于Statement,但两者处理结果集的能力基本相同。
6.JDBC中的DriverManager类的哪个方法用于建立数据库连接?o A. getConnection()o B. getDriver()o C. registerDriver()o D. setLoginTimeout()答案:A解析:getConnection()方法用于根据给定的数据库URL、用户名和密码建立数据库连接。
1.什么是JDBC?答:JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,同时,JDBC也是个商标名。
2.JDBC发展的四个阶段有哪些?答: 1)JDBC-ODBC桥2)本地API3)JDBC网络纯JA V A驱动程序4)纯JA V A写的本地通信协议3.JDBC编程的步骤分为哪几步?答: 1)注册Driver:告诉JVM使用哪个driver具体实现类2)获取连接:获取数据库连接3)创建Statement:用来表示和执行SQL语句命令4)执行SQL语句5)处理ResultSet:结果集6)释放资源:关闭顺序:ResultSet --> Statement --> Connection4.Class.forName的作用是什么?答:加载类,并返回一个“参数名”类型的类实例。
5.注册Driver的三种方式有哪些?答:注册Driver的三种方式:1)注册Driver第一种方式try {Class.forName("oracle.jdbc.driver.OracleDriver");// 如果需要多个Driver类// class.forName("driver2");// class.forName("driver3");// class.forName("driver4");} catch (ClassNotFoundException e) {e.printStackTrace();}2)注册Driver第二种方式Driver d1=new oracle.jdbc.driver.OracleDriver();try {DriverManager.registerDriver(d1);} catch (SQLException e1) {e1.printStackTrace();}3)注册Driver第三种方式在程序不指定,DriverManager没有,再找环境变量jdbc.drivers里面有没有指定java -Djdbc.drivers=oracle.jdbc.driver.OracleDriver classname 6.写一段JDBC连接Oracle的程序,并实现数据查询。
§10JDBC与数据库一、判断题1、JDBC是Java语言执行SQL的应用程序接口,应用程序通过JDBC API和底层的JDBC Driver API打交道。
由于ODBC访问数据库的效率高,所以JDBC-ODBC 桥接驱动程序得到了广泛的应用。
参考答案:不正确2、有了JDBC,Java程序独立于数据库系统(即编写数据库程序时,不再关心要访问的数据库管理系统的类型)。
参考答案:正确3、JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模块参考答案:正确4、通过JDBC-ODBC桥来访问数据库会带来一系列安全性、完整性各键壮性方面的问题.参考答案:不正确ODBC5、JDBC API可分成两个层次,面向底层的JDBC Driver API和面向程序员的JDBC API。
编写数据库应用程序时不会用到 JDBC Driver API.参考答案:正确6、在Java Applet中可以使用JDBC完成数据库的访问.参考答案:正确7、在Servlet中可以使用JDBC完成数据库的访问.参考答案:正确8、在JDBC驱动程序的各种解决方案中,由于纯Java解决方案未使用本地代码,因此其效率不高.参考答案:不正确二、单项选择题1、以下关于JDBC (Java DataBase Connectivity)的描述中,不正确的是:A、是用于执行SQL语句的Java应用程序接口,由一组用Java语言编写的类与接口组成,是一种底层APIB、使开发人员可以用纯Java语言编写完整的数据库应用程序C、用JDBC写的程序能够自动地将SQL语句传送给几乎任何一种数据库管理系统(DBMS)D、JDBC 不能通过ODBC间接实现数据库的读写2、有关采用JDBC访问数据库的应用程序,以下描述中正确的是:A、Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)的作用是连接数据库B、Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)的作用是加载驱动器C、Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)的作用连接数据库D、Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)的作用是向数据库发送查旬指令。
JDBC练习题1,选择题1。
哪个是正确的JDBC选择?A。
JDBC是一种通用的数据库连接技术。
JDBC技术不仅可以用在Java程序中,也可以用在像C++这样的程序中B。
JDBC技术是SUN公司专门为连接Oracle数据库而设计的。
连接其他数据库只能使用微软的ODBC解决方案C。
微软的ODBC和SUN公司的JDBC解决方案可以跨平台使用。
只有JDBC的性能高于ODBCD。
JDBC只是一个抽象的调用规范。
底层程序实际上依赖于每个数据库的驱动程序文件。
2.选择JDBC可以执行的语句(多选)。
所有以上可以是3。
选择推荐用于Java程序开发的常用数据库(多选)a . Oracleb . SQL server 2000c . MySQLd . db 24 .哪一个不是JDBC使用的接口和类?系统类连接结果集5 .哪种连接方法可以用来建立准备状态接口?a . create preparentation()b . prepare station()c . create preparentation()d . prepared statement()6。
下面正确的描述是什么?A。
准备语句继承自语句b。
语句继承自准备语句c。
结果集继承自语句d。
调用语句继承自准备语句7。
下面的描述错误是什么?A的executeQuery()方法。
语句返回一个结果集。
B的executeUpdate()方法。
语句返回更新是否成功的布尔值。
在结果集中使用getString()可以获得对应于数据库中字符类型的值d。
结果集中的next()方法将使结果集中的下一行成为当前的第8行。
如果数据库中的某个字段是数字类型的,它可以在结果集中获得哪种方法?a . getnumberic()b . getdouble()c . getbigdecimal()d . getfloat()9。
使用Jdbc中的事务,您想用什么方法回滚事务?A。
连接的提交()连接的设置自动提交()连接的回滚()连接的关闭() 10。
jdbc 练习题一、基础概念题1. 简述 JDBC 的作用和重要性。
2. 请列举 JDBC API 中的四个主要接口。
3. 什么是驱动程序?JDBC 驱动程序的作用是什么?4. 请解释 JDBC URL 的组成结构。
5. 什么是数据库连接池?为什么使用数据库连接池?二、数据库连接与操作1. 编写一段代码,使用 JDBC 连接到 MySQL 数据库。
2. 编写一段代码,使用 JDBC 连接到 Oracle 数据库。
3. 编写一段代码,创建一个名为 "students" 的表,包含字段:id, name, age, gender。
4. 编写一段代码,向 "students" 表中插入一条记录。
5. 编写一段代码,查询 "students" 表中所有记录。
6. 编写一段代码,更新 "students" 表中某条记录的年龄。
7. 编写一段代码,删除 "students" 表中的某条记录。
8. 编写一段代码,使用预处理语句插入数据到 "students" 表中。
9. 编写一段代码,使用事务处理,同时更新两个表的数据。
三、高级特性1. 请解释预处理语句的作用和优点。
2. 编写一段代码,使用预处理语句查询 "students" 表中年龄大于 18 的记录。
3. 请解释什么是批处理,以及如何使用 JDBC 实现批处理。
4. 编写一段代码,使用 JDBC 实现批处理插入数据到"students" 表中。
5. 请解释什么是可滚动结果集,以及如何使用 JDBC 创建可滚动结果集。
6. 编写一段代码,使用可滚动结果集查询 "students" 表中的记录,并打印出每条记录的详细信息。
7. 请解释什么是元数据,以及如何使用 JDBC 获取数据库元数据。
java考试题java_JDBC⼀.不定项选择题.1.下列不属于接⼝的是[4分]A. StatementB. PreparedStatementC. DriverD. DriverManager考⽣答案:D2.关于ResultSetMetaData API描述错误的是[4分]A. getColumnCount() 返回列的数⽬B. getColumnTypeName(int index) 返回指定列的类型的名称C. getColumnType(int index) 返回字符串表⽰形式的指定列的类型D. isNullable 指定列是否为空考⽣答案:C3. emp表数据如下EMPNO ENAME JOB MGR HIREDATE SAL C OMM DEPTNO----- ---------- --------- ----- ----------- --------- --------- ------7369 SMITH CLERK 7902 1980/12/17 800.00 207499 ALLEN SALESMAN 7698 1981/2/20 1600.00 0.00 30下⾯代码输出的结果是:...ResultSet rs = stmt.executeQuery ("select comm from emp");while(rs.next()) {System.out.println(rs.getDouble(1) + "," +rs.wasNull());} [4分]A. 0, true 0, falseB. null, true 0,falseC. 0, false 0, falseD. 0, true 0, true考⽣答案:A4.下⾯的代码⽤于将存放于⽂件中的图⽚信息(mouse.bmp)和⽂本信息(some.xml)插⼊到Oracle数据库(Oracle 10g 以上驱动)应该填⼊的代码是:public void testSaveLOB() throws Exception {Connection con = DBUtils.getConnection();PreparedStatement stmt = con .prepareStatement("insert into sd_user (id, photo,mem) values(?,?,?)");stmt.setInt(1, 30);File file = new File("d:/mouse.bmp");FileInputStream fis = new FileInputStream(file);< 填⼊代码 >File xml = new File("d:/some.xml");InputStreamReader reader = new InputStreamReader(newFileInputStream( xml), "utf-8");< 填⼊代码 >int n = stmt.executeUpdate();System.out.println(n);fis.close();stmt.close();con.close();} [4分]A. stmt.setStream(2, fis, (int) file.length());stmt.setReader(3, reader, (int) xml.length());B. stmt.setBinaryStream(2, fis, (int) file.length());stmt.setCharacterStream(3, reader, (int) xml.length());C. stmt.setInputStream(2, fis, (int) file.length());stmt.setCharacterStream(3, reader, (int) xml.length());D. stmt.setBinaryStream(2, fis, (int) file.length());stmt.setFileReader(3, reader, (int) xml.length());考⽣答案:B5.下⾯描述不属于连接池的功能的是[4分]A. 可以缓解连接频繁的关闭和创建会造成系统性能的下降B. 可以⼤幅度提⾼查询语句的执⾏效率C. 可以限制客户端的连接数量D. 可以提⾼系统的伸缩性考⽣答案:C参考答案:B6.下⾯的代码⽤于实现对emp表的分页查询(Oracle),在每页10⾏的前提下查询第8页的语句是:[4分]A. String sql = "select ename,sal from emp where limit ?,?" ; PreparedStatement stmt = con.prepareStatement(sql); stmt.setInt(1,10*7+1+10);stmt.setInt(2,10*7+1);stmt.executeQuery(); ...B. String sql = "select ename,sal from emp limit ?,?"; PreparedStatement stmt = con.prepareStatement(sql); stmt.setInt(1,10*7+1+10);stmt.setInt(2,10*7+1);stmt.executeQuery();C. String sql = "select ename, sal from emp (select enam, sal, rownum n from foo where rownum>=?) where n PreparedStatement stmt = con.prepareStatement(sql);stmt.setInt(1,10*7+1);stmt.setInt(2,10*7+1+10);stmt.executeQuery();D. String sql = "select ename, sal from (select ename, sal, rownum n from foo where rownum<?) where n>=?" PreparedStatement stmt = con.prepareStatement(sql);stmt.setInt(1,10*7+1+10);stmt.setInt(2,10*7+1);stmt.executeQuery();考⽣答案:B参考答案:D7.下⾯代码空⽩处应该填⼊的是:public void tstAuto() throws Exception {Class.forName("com.mysql.jdbc.Driver");Connection con =DriverManager.getConnection( "jdbc:mysql://localhost:3306/test", "root", "root");con.setAutoCommit(false);PreparedStatement stmt = con .prepareStatement("insert into emp(name, hire_date, dept_id) values(?,?,?)"); stmt.executeUpdate("insert into dept (name,location)value('R&D','Beijing')");// 获取刚刚产⽣的主键 < 填⼊代码 >... ... ...stmt.close();con.close();}[4分]A. ResultSet key = stmt.getKeys();B. int key = stmt.getGeneratedKeys();C. ResultSet key = stmt.getGeneratedKeys();D. int key = stmt.getKeys();考⽣答案:C8.已知数据表emp的数据为:EMPNO ENAME----- ----------7369 SMITH7499 ALLEN7521 WARD下⾯代码的运⾏结果是int empno = 6000;String ename = "hello' or '1'='1";Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select count(*) from emp where empno="+empno+" and ename='"+ename+"'"); rs.next();System.out.println(rs.getInt(1));[4分]A. 0B. 1C. 2D. 3考⽣答案:D9.下⾯关于PreparedStatement的说法错误的是[4分]A. PreparedStatement继承了StatementB. PreparedStatement可以有效的防⽌SQL注⼊C. PreparedStatement不能⽤于批量更新的操作D. PreparedStatement可以存储预编译的Statement,从⽽提升执⾏效率考⽣答案:AC参考答案:C10.下⾯关于Oracle数据库连接URI正确的拼写格式是[4分]A. jdbc:oracle:thin:@hostname:1521:orclB. jdbc/oracle/thin/@hostname:1521/orclC. jdbc:oracle/thin/@hostname:1521/orclD. jdbc:oracle:thin/@hostname:1521/orcl考⽣答案:A11.ConnUtils类中通过属性⽂件获取连接参数的代码应该是:[4分]A. Properties props = new Properties();props.load(ConnUtils.getClassLoader().getStream("org/whatisjava/mis/d b.properties"));driver = props.getProperty("driver");url = props.getProperty("url");username = props.getProperty("username");password = props.getProperty("password"); ………B. Properties props = new Properties();props.load(ConnUtils.class.getClassLoader().getResourceAsStream ("org/whatisjava/mis/db.properties")); driver = props.getProperty("driver");url = props.getProperty("url");username = props.getProperty("username");password = props.getProperty("password"); ………C. Properties props = new Properties();props.load(ConnUtils.getClassLoader().getResourceAsStream("org/whatisjava/mis/db.properties"));driver = props.getProperty("driver");url = props.getProperty("url");username = props.getProperty("username");password = props.getProperty("password"); ………D. Properties props = new Properties();props.load(ConnUtils.class.getClassLoader().getStream("org/whatisjava/mis/db.properties"));driver = props.getProperty("driver");url = props.getProperty("url");username = props.getProperty("username");password = props.getProperty("password"); ………考⽣答案:C参考答案:B12.下⾯关于ResultSet说法错误的是[4分]A. 查询结束后,所有的结果数据将⼀次被存储在ResultSet对象中B. Statement对象close后,由其创建的ResultSet对象将⾃动的closeC. 查询结束后,ResultSet中的游标指向第⼀条记录之上,因此要先调⽤⼀次next才有可能取得记录D. ResultSet的的⽅法getString(...)意为取得该列的数据以字符串的形式返回考⽣答案:A13.下⾯关于数据库事务的描述错误的是[4分]A. 原⼦性是事务具备的⼀个重要特性B. Connection对象setAutoCommit(boolean b) ⽅法默认设置为trueC. Repeatable Read 可以禁⽌不可重复读取和脏读取D. Read Committed 允许脏读取但不允许不可重复读取考⽣答案:D14.下⾯XML内建实体引⽤错误的是:[4分]A. & quot;B. & amp;C. & and;D. & apos;考⽣答案:C15.下⾯XML⽂档符合语法规则的是:[4分]A. Hello HeyB. HeyC. Hello Hey。
Java 数据库连接练习题及答案1. 练习题1.1. 题目一:连接数据库请编写Java代码,使用JDBC技术连接MySQL数据库,并返回数据库连接对象。
答案:```javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class ConnectionExample {public Connection getConnection() throws SQLException {String url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "password";Connection connection = DriverManager.getConnection(url, username, password);return connection;}```1.2. 题目二:执行SQL查询语句请编写Java代码,使用之前获取的数据库连接对象,执行以下SQL查询语句,并返回查询结果集。
- 查询所有学生的姓名和年龄:SELECT name, age FROM students;- 查询成绩大于80分的学生:SELECT * FROM students WHERE score > 80;答案:```javaimport java.sql.*;public class QueryExample {public ResultSet executeQuery(Connection connection, String sql) throws SQLException {Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(sql);return resultSet;}```1.3. 题目三:插入数据请编写Java代码,使用之前获取的数据库连接对象,向students表插入一条新记录,包含学生姓名、年龄和成绩。
9JDBC数据库9.1单项选择题1.数据库系统的核心是( B )A、数据库B、数据库管理系统C、数据模型D、软件工具2.不同的数据库管理系统支持不同的数据模型,下列( D )不属于常用的数据模型。
A、关系模型B、网状模型C、层次模型D、链表模型3.以下关于数据的存储结构的叙述中哪一条是正确的?( B )A、数据的存储结构是数据间关系的抽象描述B、数据的存储结构是逻辑结构在计算机存储器中的实现C、数据的存储结构分为线性结构和非线性结构D、数据的存储结构对数据运算的具体实现没有影响4.在数据库中存储的是( C )A、数据B、数据模型C、数据以及数据之间的联系D、信息5.数据库管理系统的数据操纵语言( )所实现的操作一般包括A、建立、授权、修改B、建立、授权、删除C、建立、插入、修改、排序D、查询、插入、修改、删除6.Java中,JDBC是指( )A. Java程序与数据库连接的一种机制B.Java程序与浏览器交互的一种机制C.Java类库名称D.Java类编译程序9.2填空题1.Java提供的类库支持_________协议,应用程序可通过URl地址,在访问网络上任何地方的对象时,如同访问本地文件一样简单。
2.JDBC APl的含义是Java应用程序连接_________的编程接口。
3.Java编程语言前台应用程序使用________来和JDBC驱动管理器进行交互。
4.JDBC驱动管理器使用_________来装载合适的JDBC驱动。
5.JDBC的类都被汇集在________包中,在安装JavaJDKl.1或更高版本时会自动安装。
6.查询数据库的7个标准步骤是:载人JDBC驱动器、定义连接的网址URL、建立连接、建立声明对象、执行查询或更新、处理结果、____________。
7.使用Class.forName( )方法加载和注册驱动程序后,由____________类负责管理并跟踪JDBC驱动程序,在数据库和相应驱动程序之间建立连接。
1.1Java JDBC数据库访问技术及XML应用技术课程单元测试试题1.1.1单选题1、使用下面的Connection 的哪个方法可以建立一个PreparedStatement接口( B )A createPrepareStatement()B prepareStatement()C createPreparedStatement()D preparedStatement()2 在Jdbc中可以调用数据库的存储过程的接口是 ( C )A StatementB PreparedStatementC CallableStatementD PrepareStatement3 下面的描述正确的是 ( D )A Statement继承自PreparedStatementB Statement继承自PreparedStatementC ResultSet继承自StatementD CallableStatement继承自PreparedStatement4 下面的描述错误的是 ( B )A Statement的executeQuery()方法会返回一个结果集B Statement的executeUpdate()方法会返回是否更新成功的boolean值C 使用ResultSet中的getString()可以获得一个对应于数据库中char类型的值D ResultSet中的next()方法会使结果集中的下一行成为当前行5 如果数据库中某个字段为numberic型,可以通过结果集中的哪个方法获取 ( B )A getNumberic()B getDouble()C setNumberic()D setDouble()6 在Jdbc中使用事务,想要回滚事务的方法是 ( C )A Connection的commit()B Connection的setAutoCommit()C Connection的rollback()D Connection的close()7.当在一个xml处理器中使用xml解析器,什么时候选取SAX解析器是最好的选择(C)A 文档必须以非线性的访问方式被处理,即允许多次的访问一个元素B 处理器的内存不是一个问题,即又足够的内存C 只需要按照顺序的访问xml文档,就能够满足要求D 处理器要输出一个xml文档8. 在DOM API中,把下面的那些解析成叶子结点(叶子结点即没有字节点的节点)(B)A属性B文本C实体D实体引用9.在一个xml应用程序当中不使用DOM解析器技术,下边的那个理由是最充分的(C)A这个应用程序不需要进行有效性校验B应用程序需要有复杂的处理C应用程序在一个具有极度有限的内存环境中使用D这个程序架构需要处理属性10.在下面的那种情况下使用DOM(Documeng Object Model)是最合适的(D)A内存是有限的B只有某一些元素需要被处理C xml文档非常的巨大D元素必须以随机的方式被访问处理,而不是线性的方式1.1.2填空题1. jdbc常用的API包括(DriverManager)(Connection)(Statement)(PrepareStateme)(ResultSet)2. 典型的JDBC程序按获得与数据库的物理连接、(执行SQL命令)、创建不同类型的Statement顺序编写。
数据库与jdbc技术单元习题一、填空题1.jdbc的英文全称是______数据库与jdbc技术单元习题一、填空题1.jdbc的英文全称是______“数据库与jdbc技术”单元习题一、填空题1(JDBC 的英文全称是___________。
2. JDBC 中为Statement 接口提供了3种执行方法,它们是:___________、__________和___________。
3(在 JSP 中,当执行了查询操作时,一般将查询结果保存在_____________________对象中。
4(当执行的SQL 语句是预编译的,或者需要执行多条语句,此时需要一个____________________对象。
5(在JSP 中可以通过创建______________________对象来执行存储过程。
6( 在 JSP 中,连接数据库的方式通常有两种: 一种是______________________; 另一种是______________________。
7(使用JSP 与DBMS建立连接可以分为两步:_________________和___________。
8.DatabaseMetaData接口主要用来得到关于数据库的信息,而___________类用来获取数据库表的结构。
9(在JSP 中连接数据库通常有两种形式:一是___________________;二是___________实现连接。
10(___________类是JDBC 的管理层,作用于用户和驱动程序之间。
11(在JSP中要建立与数据库的连接必须调用 DriverManager 类的______________________方法。
12(______________________接口代表与数据库的连接,并拥有创建SQL 语句的方法。
13(在访问数据库的环境配置过程中,可以将驱动程序的___________、___________和___________三个文件复制到Tomcat 安装文件夹下的 commmon\lib 文件夹中。
java数据库试题及答案(正文内容开始)数据库是计算机科学中重要的概念之一,它扮演着存储、管理和组织数据的角色。
在Java开发中,数据库的应用非常广泛。
本文将为大家提供一些与Java数据库相关的试题及答案,帮助读者巩固对Java数据库的理解和应用。
1. 问:什么是数据库?答:数据库是指以某种有组织的方式存储的数据集合。
它可以包括表、字段、记录等,并提供了对这些数据进行增删改查的操作。
2. 问:Java中常用的数据库有哪些?答:Java中常用的数据库包括MySQL、Oracle、SQL Server、PostgreSQL等。
这些数据库都提供了Java开发所需的驱动程序和API 接口。
3. 问:如何在Java中连接数据库?答:Java中连接数据库的一种常见方式是使用JDBC(Java Database Connectivity)。
通过引入数据库的驱动程序,并编写合适的连接字符串、用户名和密码等信息,可以实现Java程序与数据库的连接与通信。
4. 问:请解释一下JDBC的工作原理。
答:JDBC通过提供一组API接口,使得Java程序可以与各种类型的数据库进行通信。
它通过加载数据库驱动程序,建立数据库连接,执行SQL语句并处理结果集等步骤来实现与数据库的交互。
5. 问:如何在Java中执行SQL查询语句?答:在Java中执行SQL查询语句需要先获得数据库的连接对象(Connection),再创建一个Statement对象,通过该对象执行SQL查询语句并获取结果集(ResultSet)。
6. 问:如何在Java中执行SQL更新语句?答:在Java中执行SQL更新语句同样需要先获得数据库的连接对象(Connection),再创建一个Statement或PreparedStatement对象,通过该对象执行SQL更新语句(如INSERT、UPDATE、DELETE)。
7. 问:Java中如何处理数据库事务?答:Java中处理数据库事务需要使用到数据库连接的事务管理功能。
jdbc考试题及答案**JDBC考试题及答案**一、选择题1. JDBC(Java Database Connectivity)的主要作用是什么?A. 连接数据库B. 进行数据库操作C. 执行SQL语句D. 以上都是答案:D2. JDBC中,哪个类负责与数据库建立连接?A. DriverManagerB. ConnectionC. StatementD. ResultSet答案:A3. 在JDBC中,以下哪个接口用于执行SQL语句?A. StatementB. PreparedStatementC. CallableStatementD. ResultSet答案:A4. JDBC中,以下哪个方法用于关闭ResultSet?A. close()B. executeQuery()C. executeUpdate()D. execute()答案:A5. JDBC中,以下哪个方法用于关闭Statement?A. close()B. executeQuery()C. executeUpdate()D. execute()答案:A二、填空题1. JDBC的全称是________,它提供了一种________的方法,允许Java程序连接到数据库并执行SQL语句。
答案:Java Database Connectivity;统一2. 在JDBC中,使用________方法可以注册JDBC驱动。
答案:DriverManager.registerDriver()3. 要关闭数据库连接,需要调用Connection对象的________方法。
答案:close()4. 在JDBC中,________接口用于执行静态SQL语句,并返回它所生成的结果。
答案:Statement5. PreparedStatement接口继承自________接口,它允许预编译SQL语句,提高性能。
答案:Statement三、简答题1. 请简述JDBC的连接步骤。
一、选择题1.有关JDBC的选项正确的是哪一个?A.JDBC是一种被设计成通用的数据库连接技术,JDBC技术不光可以应用在Java程序里面,还可以用在C++这样的程序里面。
B.JDBC技术是SUN公司设计出来专门用在连接Oracle数据库的技术,连接其他的数据库只能采用微软的ODBC解决方案C.微软的ODBC和SUN公司的JDBC解决方案都能实现跨平台使用,只是JDBC的性能要高于ODBCD.JDBC只是个抽象的调用规范,底层程序实际上要依赖于每种数据库的驱动文件2.选择JDBC可以执行的语句(多选)A.DDLB.DCLC.DMLD.以上都可以3.选择Java程序开发中推荐使用的常用数据库(多选)a.Oracleb.SQL Server 2000c.MySQLd.DB24.哪个不是JDBC用到的接口和类?a.Systemb.Classc.Connectiond.ResultSet5.使用Connection 的哪个方法可以建立一个PreparedStatement接口?A.createPrepareStatement()B.prepareStatement()C.createPreparedStatement()D.preparedStatement()6.下面的描述正确的是什么?A.PreparedStatement继承自StatementB.Statement继承自PreparedStatementC.ResultSet继承自StatementD.CallableStatement继承自PreparedStatement7.下面的描述错误的是什么?A.Statement的executeQuery()方法会返回一个结果集B.Statement的executeUpdate()方法会返回是否更新成功的boolean值C.使用ResultSet中的getString()可以获得一个对应于数据库中char类型的值D.ResultSet中的next()方法会使结果集中的下一行成为当前行8.如果数据库中某个字段为numberic型,可以通过结果集中的哪个方法获取?A.getNumberic()B.getDouble()C.getBigDecimal ()D.getFloat()9.在Jdbc中使用事务,想要回滚事务事务的方法是什么?A.Connection的commit()B.Connection的setAutoCommit()C.Connection的rollback()D.Connection的close()10.在JDBC编程中执行完下列SQL语句SELECT name, rank, serialNoFROM employee,能得到rs的第一列数据的代码是哪两个?A.rs.getString(0);B.rs.getString("name");C.rs.getString(1);D.rs.getString("ename");11.下面关于PreparedStatement的说法错误的是什么A.PreparedStatement继承了StatementB.PreparedStatement可以有效的防止SQL注入C.PreparedStatement不能用于批量更新的操作D.PreparedStatement可以存储预编译的Statement,从而提升执行效率12.下面的选项加载MySQL驱动正确的是哪一个?A.Class.forname("");B.Class.forname("");C.Class.forname("");D.Class.forname("");13.下面的选项加载MySQL驱动正确的是哪一个?A.Class.forname("");B.Class.forname("");C.Class.forname("");D.Class.forname("");14.下面代码加载Oracle驱动正确的是哪一个?A.DriverManager.register("");B.DriverManager.forname("");C.DriverManager.load("");D.DriverManager.newInstance("");15.有关Connection描述错误的是哪一个?A.Connection是Java程序与数据库建立的连接对象,这个对象只能用来连接数据库,不能执行SQL语句。
9JDBC数据库
9.1单项选择题
1.数据库系统的核心是(B)
A、数据库
B、数据库管理系统
C、数据模型
D、软件工具
2.不同的数据库管理系统支持不同的数据模型,下列(D)不属于常用的数据模型。
A、关系模型
B、网状模型
C、层次模型
D、链表模型
3.以下关于数据的存储结构的叙述中哪一条是正确的?(B)
A、数据的存储结构是数据间关系的抽象描述
B、数据的存储结构是逻辑结构在计算机存储器中的实现
C、数据的存储结构分为线性结构和非线性结构
D、数据的存储结构对数据运算的具体实现没有影响
4.在数据库中存储的是(C)
A、数据
B、数据模型
C、数据以及数据之间的联系
D、信息
5.数据库管理系统的数据操纵语言()所实现的操作一般包括
A、建立、授权、修改
B、建立、授权、删除
C、建立、插入、修改、排序
D、查询、插入、修改、删除
6.Java中,JDBC是指()
A.Java程序与数据库连接的一种机制
B.Java程序与浏览器交互的一种机制
C.Java类库名称
D.Java类编译程序
9.2填空题
1.Java提供的类库支持_________协议,应用程序可通过URl地址,在访问网络上任何地方的对象时,如同访问本地文件一样简单。
2.JDBC APl的含义是Java应用程序连接_________的编程接口。
3.Java编程语言前台应用程序使用________来和JDBC驱动管理器进行交互。
4.JDBC驱动管理器使用_________来装载合适的JDBC驱动。
5.JDBC的类都被汇集在________包中,在安装JavaJDKl.1或更高版本时会自动安装。
6.查询数据库的7个标准步骤是:载人JDBC驱动器、定义连接的网址URL、建立连接、建立声明对象、执行查询或更新、处理结果、____________。
7.使用Class.forName()方法加载和注册驱动程序后,由____________类负责管理并跟踪JDBC驱动程序,在数据库和相应驱动程序之间建立连接。
8.__________________接口负责建立与指定数据库的连接。
9.__________________接口的对象可以代表一个预编译的SOL语句,它是Statement接口的子接口。
10.__________________接口表示从数据库中返回的结果集。
9.3参考答案
9.3.1单项选择题
1.B
2.D
3.B
4.C
5.D
6.A
9.3.2填空题
1.TCP/IP
2.数据库
3.JDBC APl
4.JDBC DriverAPl
5.java.sql
6.关闭连接
7.DriverManager
8.java.sql.Connection
9.java.sql.PreparedStatement
10.java.sql.ResultSet。