【发布时间】:2012-01-12 09:21:20
【问题描述】:
我创建了一个简单的 java 类,它可以访问 sql 数据库,它工作正常 代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Query2 {
public static void main (String[] args) {
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/riconoscimento?"
+ "user=root&password=root");
Statement stmt = conn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT * FROM utenti; ");
while ( rs.next() ) {
String passwordToRead = rs.getString("password");
String usernameToRead = rs.getString("username");
System.out.println(passwordToRead);
System.out.println(usernameToRead);
}
conn.close();
} catch (Exception e) {
System.err.println("Database Access Error");
System.err.println(e.getMessage());
}
}
}
jsp页面中的相同代码不起作用,问题是try-catch块没有执行,我不知道怎么可能 代码如下:
<%@ page language ="java" import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>I dati inseriti per l'autenticazione sono:</title>
</head>
<body>
<h1>
<%
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/riconoscimento?"
+ "user=root&password=root");
Statement stmt = conn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT * FROM utenti; ");
while ( rs.next() ) {
String passwordToRead = rs.getString("password");
String usernameToRead = rs.getString("username");
out.println(passwordToRead);
out.println(usernameToRead);
}
conn.close();
} catch (Exception e) {
System.err.println("Database Access Error");
System.err.println(e.getMessage());
}
%>
</h1>
</body>
</html>
【问题讨论】:
-
你关闭了所有你打开的html标签吗?就像在你的 jsp 中一样,它本身并没有关闭。 jsp 是否正在编译,你看到的输出是什么?
-
这里忘记复制了,但是出现在.jsp页面中..真的看不懂
-
增量部署localhost:8080/WebApplication1 完成增量分发localhost:8080/WebApplication1 run-deploy: Browsing: localhost:8080/WebApplication1/index.jsp run-display-browser: run: BUILD SUCCESSFUL (总时间: 4 秒)
-
你确定
rs.next()是真的,它正在进入while循环。检查在 while 循环前后放置out.print("test start");和out.print("test end");。 -
试图把各种 out.println("test 123"); try catch 块中包含的所有 println 都被完全忽略 不知道为什么显示所有超出 try catch 的 println