试题1
下列不属于接口的是
A. Statement
B. PreparedStatement
C. Driver
D. DriverManager
E. 这个真不会,但我很厚道
试题2
关于ResultSetMetaData API描述错误的是
A. getColumnCount() 返回列的数目
B. getColumnTypeName(int index) 返回指定列的类型的名称
C. getColumnType(int index) 返回字符串表示形式的指定列的类型
D. isNullable 指定列是否为空
E. 这个真不会,但我很厚道
试题3
emp表数据如下
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
—– ———- ——— —– ———– ——— ——— ——
7369 SMITH CLERK 7902 1980/12/17 800.00 20
7499 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());
}
A. 0, true
0, false
B. null, true
0,false
C. 0, false
0, false
D. 0, true
0, true
E. 这个真不会,但我很厚道
试题4
下面的代码用于将存放于文件中的图片信息(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(new FileInputStream(
xml), “utf-8”);
< 填入代码 >
int n = stmt.executeUpdate();
System.out.println(n);
fis.close();
stmt.close();
con.close();
}
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());
E. 这个真不会,但我很厚道
试题5
下面描述不属于连接池的功能的是
A. 可以缓解连接频繁的关闭和创建会造成系统性能的下降
B. 可以大幅度提高查询语句的执行效率
C. 可以限制客户端的连接数量
D. 可以提高系统的伸缩性
E. 这个真不会,但我很厚道
试题6
下面的代码用于实现对emp表的分页查询(Oracle),在每页10行的前提下查询第8页的语句是:
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();
E. 这个真不会,但我很厚道
试题7
下面代码空白处应该填入的是:
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();
}
A. ResultSet key = stmt.getKeys();
B. int key = stmt.getGeneratedKeys();
C. ResultSet key = stmt.getGeneratedKeys();
D. int key = stmt.getKeys();
E. 这个真不会,但我很厚道
试题8
已知数据表emp的数据为:
EMPNO ENAME
—– ———-
7369 SMITH
7499 ALLEN
7521 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));
A. 0
B. 1
C. 2
D. 3
E. 这个真不会,但我很厚道
试题9
下面关于PreparedStatement的说法错误的是
A. PreparedStatement继承了Statement
B. PreparedStatement可以有效的防止SQL注入
C. PreparedStatement不能用于批量更新的操作
D. PreparedStatement可以存储预编译的Statement,从而提升执行效率
E. 这个真不会,但我很厚道
试题10
下面关于Oracle数据库连接URI正确的拼写格式是:
A. jdbc:oracle:thin:@hostname:1521:orcl
B. jdbc/oracle/thin/@hostname:1521/orcl
C. jdbc:oracle/thin/@hostname:1521/orcl
D. jdbc:oracle:thin/@hostname:1521/orcl
E. 这个真不会,但我很厚道
试题11
ConnUtils类中通过属性文件获取连接参数的代码应该是:
A.
Properties props = new Properties();
props.load(ConnUtils.getClassLoader().getStream
(“org/whatisjava/mis/db.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”);
… … …
E. 这个真不会,但我很厚道
试题12
下面关于ResultSet说法错误的是
A. 查询结束后,所有的结果数据将一次被存储在ResultSet对象中
B. Statement对象close后,由其创建的ResultSet对象将自动的close
C. 查询结束后,ResultSet中的游标指向第一条记录之上,因此要先调用一次next才有可能取得记录
D. ResultSet的的方法getString(…)意为取得该列的数据以字符串的形式返回,数据库中的该列类型 并不一定必须是字符类型
E. 这个真不会,但我很厚道
试题13
下面关于数据库事务的描述错误的是
A. 原子性是事务具备的一个重要特性
B. Connection对象setAutoCommit(boolean b) 方法默认设置为true
C. Repeatable Read 可以禁止不可重复读取和脏读取
D. Read Committed 允许脏读取但不允许不可重复读取
E. 这个真不会,但我很厚道
试题14
下面XML内建实体引用错误的是:
A. ”
B. &
C. ∧
D. ‘
E. 这个真不会,但我很厚道
试题15
下面XML文档符合语法规则的是: