JSP企业面试题整理(5)

JSP企业面试题整理(5)
7-2 图示JDBC的工作原理,并列举常用的对象。(企业笔试题)


建立是建立与数据库之间的连接,也就是创建一个Connection的实例。DriverManager类的getConnection()方法将建立数据库的连接:

Statement对象用于将SQL语句发送到数据库中。存在3种Statement对象:(1)Statement;(2)PreparedStatement(从Statement继承而来);(3)CallableStatement(从PreparedStatement继承而来)。

ResultSet包含符合SQL语句执行结果所有行,并且它通过一套get方法提供了对这些行中数据的访问

 7-3 如图7-16,要求:查找 “张三”选择所有课程的名称,写出SQL语句。(企业笔试题)

SELECT c.cname FROM sc a, student b, course c

WHERE a.cno=c.cno

AND a.sno=b.sno and b.sname ='张三'

 

7-4 下面的代码段是否正确?请说明。(企业笔试题)

       pst = conn.prepareStatement("INSERT INTO grade(学号) VALUES (?)");

       for (int i = 101; i < 111; i++) {

                pst.setInt(1, i);

                pst.addBatch();

}

pst.execute ();

}

 

错,pst.executeBatch();

7-5 简述事务的基本概念,如何在JDBC中实现事务?

事务是一些事件的集合,执行一条SQL语句可以理解成一个事件。事务中包含多个事件,如果每一个事件都能执行成功的时候,事务才执行,如果有任何一个事件不能成功执行,事务的其他事件也不被执行

boolean defaultCommit = conn.getAutoCommit();

conn.setAutoCommit(false);

try {

       stmt.executeUpdate(strSQL1);

       stmt.executeUpdate(strSQL2);

       conn.commit();

}

catch (Exception e) {

       conn.rollback();

       e.printStackTrace();

}

finally {

       if (stmt != null) {

                stmt.close();

       }

       if (conn != null) {

                conn.close();

       }

}

conn.setAutoCommit(defaultCommit);

7-6 结果集类型和结果集并发性各有几种情况,有什么作用。

决定这个Statement对象创建的ResultSet对象是否可以滚动,还可以指定结果集是否对数据库中的修改敏感。使用ResultSet类中的int常量来表示结果集类型,结果集类型有3种:

l         ResultSet.TYPE_FORWORD_ONLY:指定ResultSet对象是不可滚动,这是默认值。

l         ResultSet.TYPE_SCOLL_INSENSITIVE:指定ResultSet对象是可滚动的,但是对数据库中修改不敏感。

l         ResultSet.TYPE_SCOLL_SENSITIVE:指定ResultSet对象是可滚动的,而且对数据库的修改敏感。

结果集的并发性(Concurrency)决定ResultSet对象是否可以修改数据库中的行。可以使用ResultSet类中定义的int常量来指定结果集的并发性。

l         ResultSet.CONCUR_READ_ONLY,指定ResultSet对象不能修改数据库,默认值。

ResultSet.CONCUR_UPDATABLE,指定ResultSet对象可以修改数据库。

 



你可能感兴趣的:(sql,c,jsp,面试,jdbc)