Java 神秘的sql访问行为
我创建了一个简单的java类,它可以访问sql数据库,运行良好 代码如下:Java 神秘的sql访问行为,java,mysql,database,jsp,Java,Mysql,Database,Jsp,我创建了一个简单的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) {
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());
}
}
}
<%@ 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>
jsp页面中的相同代码不起作用,问题是try-catch块没有执行,我不知道这是怎么可能的
代码如下:
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());
}
}
}
<%@ 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>
我的名字是dati inseriti per l'autenticazione sono:
您是否希望catch中的语句输出到JSP页面?如果是这样,则需要使用out.println。System.err.println将写入服务器错误日志。您是否已关闭所有已打开的html标记??就像在ur中一样,jsp本身是不关闭的。jsp是否正在编译,您看到的输出是什么?忘记在这里复制,但显示在.jsp页面中。。确实无法理解增量部署已完成的增量分发运行部署:浏览:运行显示浏览器:运行:构建成功(总时间:4秒)您确定
rs.next()
为真,它在循环时进入。检查输出打印(“测试开始”)代码>和输出打印(“测试结束”)代码>while循环前后。尝试输出各种输出。println(“test 123”);try-catch块中包含的所有println都被完全忽略不知道为什么try-catch中的所有println都会显示如果isAutoFlush()返回“false”,则第一步是必要的。事实上,我不知道这个选项是否是为所有web服务器预定义的,而且似乎这个选项可能是在外部(jsp)配置的。我试图将一些.println(“test”)放在try-catch之外,它们只显示在屏幕上,try-catch中发生的事情没有被执行。您是否查看了页面源代码或只是浏览器的呈现?另外,在if(rs.next())
语句之后添加一些调试日志记录。顺便说一句,您必须在finally块中关闭连接、结果集和prepared语句。在同一文件夹中创建了一个新的jsp文件,现在只有复制和粘贴可以工作了。。。怎么了?