ein Problem Abrufen von Nachrichten von Datenbank zu haben, finden Sie mein Code:Abrufen von Daten aus hsqldb mit jsp und Servlets
UserDAO.java
public class UserDAO {
public static Connection getConnection() {
Connection con = null;
try {
Class.forName("org.hsqldb.jdbcDriver");
con = DriverManager.getConnection(
"jdbc:hsqldb:hsql://localhost/oneDB", "sa", "");
} catch(Exception e) {
e.printStackTrace();
}
return con;
}
public static List<User> list() {
try{
Connection connection = getConnection();
List<User> users = new ArrayList<User>();
try {
PreparedStatement statement = connection.prepareStatement("SELECT * FROM user");
ResultSet rs = statement.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String address = rs.getString("address");
User user = new User(id, name, address);
System.out.println("user:" + user.getTheName());
users.add(user);
}
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
return users;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
doGet in meinem Servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<User> users = UserDAO.list();
request.setAttribute("users", users);
request.getRequestDispatcher("showUser.jsp").forward(request, response);
}
showUser.jsp
<c:forEach items="${users}" var="user">
Name: <c:out value="${users.theName}" /> <br>
Address: <c:out value="${users.theAddress}" /><br>
</c:forEach>
Stapelüberwachung:
root cause
java.lang.NumberFormatException: For input string: "name"
java.lang.NumberFormatException.forInputString(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
javax.el.ListELResolver.coerce(ListELResolver.java:157)
javax.el.ListELResolver.getValue(ListELResolver.java:70)
org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
org.apache.el.parser.AstValue.getValue(AstValue.java:169)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:943)
org.apache.jsp.showUser_jsp._jspx_meth_c_005fout_005f0(showUser_jsp.java:217)
org.apache.jsp.showUser_jsp._jspx_meth_c_005fforEach_005f0(showUser_jsp.java:178)
org.apache.jsp.showUser_jsp._jspService(showUser_jsp.java:134)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
controllers.GetUserServlet.doGet(GetUserServlet.java:37)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Ich bin neu in jsp und Servlets so dass ich nicht sicher bin, wo ich falsch gegangen. Jede Hilfe wäre willkommen.
Benutzer zu Benutzer geändert und es hat funktioniert. Ich weiß nicht, wie ich das vermisst habe. Vielen Dank!! – Paul
Großartig. Möglicherweise möchten Sie auch überprüfen, wie Sie das Schließen der Verbindung und der Anweisung im Falle von Ausnahmen durchführen, da möglicherweise Ressourcen verloren gehen. Werfen Sie einen Blick auf http://stackoverflow.com/questions/11160557/java-jdbc-best-design-pattern-to-close-database-connection-when-exception-occ. – cjungel
Ich werde jetzt nachsehen, danke für deine Hilfe! – Paul