Statement st=conn.createStatement(); String sql="select * from patient"; ResultSet rs=st.executeQuery(sql); while(rs.next()){ String uname=rs.getString(1); String uno=rs.getString(2); String usex=rs.getString(4); out.println(uname+"--"+uno+"--"+usex+"<br>"); } rs.close(); st.close(); conn.close();
时间: 2024-02-22 21:01:43 浏览: 100
这段代码是用 Java 语言编写的,它连接到数据库并执行了一个查询语句,查询语句是 "select * from patient",也就是查询了名为 "patient" 的表中的所有数据。然后通过遍历查询结果集,将每一条记录中的第一列、第二列、第四列的数据分别赋值给了三个字符串变量 uname、uno、usex,并将它们输出到了网页中。最后,关闭了结果集、语句和连接对象。这段代码的目的是从数据库中获取病人的信息并将其显示在网页上。
相关问题
假定已经获得一个数据库连接,使用变量conn来表示。下列语句中能够正确获得结果集的有__1__。(选择两项) A.Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(“SELECT * FROM STUDENT”); B.Statement stmt = conn.createStatement(“SELECT * FROM STUDENT”); ResultSet rs = stmt.executeQuery(); C.PreparedStatement stmt = conn.prepareStatement(); ResultSet rs = stmt.executeQuery(“SELECT * FROM STUDENT”); D.PreparedStatement stmt = conn.prepareStatement(“SELECT * FROM STUDENT”); ResultSet rs = stmt.executeQuery();
正确答案是 A 和 D。
A 中的语句使用了 `conn.createStatement()` 创建 Statement 对象,并将 SQL 查询语句作为参数传递给 `executeQuery()` 方法,可以正确获得结果集。
D 中的语句使用了 `conn.prepareStatement()` 创建 PreparedStatement 对象,并在创建时传递了 SQL 查询语句作为参数,然后调用 `executeQuery()` 方法,也可以正确获得结果集。
B 中的语句使用了错误的函数调用方式,应该先调用 `conn.createStatement()` 创建 Statement 对象,再传递 SQL 查询语句作为参数给 `executeQuery()` 方法。
C 中的语句创建了一个 PreparedStatement 对象,但是没有传递 SQL 查询语句,因此无法正确获得结果集。
public double getDouble(String sql) { double i = 0; try { Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(sql); if (rs.next()) { i = rs.getDouble(1); } st.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return i; } public void commOper(String sql) { try { Statement st = conn.createStatement(); st.execute(sql); st.close(); } catch (SQLException e) { //捕获SQL异常并进行处理 // TODO Auto-generated catch block e.printStackTrace(); } }
这段代码包含两个Java方法。第一个方法是getDouble,用于执行SQL查询语句,并返回查询结果中第一行第一列的double类型值。参数sql是待执行的SQL查询语句,conn是一个已经建立好的数据库连接。
在该方法中,首先创建一个Statement对象,然后使用该对象执行SQL查询语句。如果查询结果集中有数据,则取出第一行第一列的值,并赋值给变量i。最后,关闭Statement对象以释放资源,并返回变量i的值。
第二个方法是commOper,用于执行SQL语句,包括INSERT、UPDATE、DELETE等操作。参数sql是待执行的SQL语句,conn是一个已经建立好的数据库连接。
在该方法中,首先创建一个Statement对象,然后使用该对象执行SQL语句。如果SQL语句是INSERT、UPDATE、DELETE等操作,则使用Statement对象的execute()方法执行;如果SQL语句是SELECT等查询操作,则使用Statement对象的executeQuery()方法执行。最后,关闭Statement对象以释放资源。
需要注意的是,在使用完Statement对象后,应该及时关闭以释放资源。另外,该方法可能存在SQL注入漏洞,应该避免直接拼接SQL语句,而是使用参数化查询或者ORM框架来构建SQL语句。
阅读全文