【发布时间】:2014-08-13 16:33:59
【问题描述】:
我有一个 .jsp 文件,它基本上显示来自数据库的数据。数据库类在 .java 文件中单独定义。为了获取数据库的内容,我调用了数据库的 getData 方法。但是所做的函数调用永远不会执行,也不会返回任何内容。
但是,如果我从 getData 函数返回任何预先计算的值,那么它执行得很好。
我想知道如何从 .jsp 文件访问数据库。
我不想将 java 代码直接添加到 .jsp 文件中。所以我想通过方法调用来做到这一点。
.jsp 文件中的函数:
<%
ArrayList<String> al = com.Database.getData();
%>
Java函数:
getData(){
al = new ArrayList<String>();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
al.add("first");
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
stmt = conn.createStatement();
String sql = "SELECT rs FROM DATABASE";
rs = stmt.executeQuery(sql);
while(rs.next()){
String str = rs.getString("str");
al.add(str);
}
}catch(Exception e){
e.printStackTrace();
}
al.add("nikunj ");
al.add("banka ");
return al;
}
调用后arraylist的内容是{"first", "nikunj", "banka"},并且没有数据库中的数据。
如何从数据库中获取数据。我尝试创建一个静态块,该块将在程序开始时填充 ArrayList,但即使这样也不起作用。
【问题讨论】:
-
您正在从表
DATABASE中选择字段rs,然后尝试将字段str从 ResultSet 中取出... -
SELECT rs然后getString("str")?你没有选择你想进入的领域。 -
rs 将保存数据库中的所有数据。我会按顺序获取数据并将其添加到al中。
-
你没有得到任何错误跟踪吗?
-
不打印错误跟踪。仅将 3 个字符串添加到 al 中。