我写了一个.jsp页面作为更大的数据库项目的一部分。目标是使用一系列.jsp页面,使用java和html显示来自mySQL数据库的数据。我遇到了JDBC查询的问题,特别是使用预处理语句从库存表中选择汽车模型。我编写了它,以便id = 3的汽车将返回相应的汽车模型,然后将其打印在屏幕上。运行代码后,屏幕上没有输出,因此问题可能在于我的查询或之前的连接设置,我只是不确定在哪里。
<%--
Document : content
Created on : May 6, 2015, 5:04:20 PM
Author : Christopher
--%>
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@page import = "java.sql.*" %>
<%@page import = "java.util.logging.Level" %>
<%@page import = "java.util.logging.Logger" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>content</title>
</head>
<body>
<h1>Welcome!</h1>
<%!
public class Template {
public Template(){
try{
Class.forName("com.mysql.jdbc.driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/itmd4515?zeroDateTimeBehavior=convertToNull"
,"itmd4515","itmd4515");
PreparedStatement ppst = con.prepareStatement("select * from inventory where id = 3");
ResultSet rs = ppst.executeQuery();
rs.next();
String carModel = rs.getString("carModel");
rs.close();
con.close();
System.out.println(carModel);
}catch(SQLException ex){
System.err.println(ex.getMessage());
} catch (ClassNotFoundException ex) {
Logger.getLogger(Template.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
%>
<br><br>
<%= new java.util.Date() %>
</body>
库存表
我确信问题出现在上面的代码中,因为运行代码时没有错误;它根本不显示汽车模型。此外,数据库已正确配置和连接,因此可能也不是问题。
如果问题显而易见,我很抱歉,我仍然在使用JDBC和.jsp。这是一个在Netbeans中完成的maven web应用程序。
最新的系统讯息
修改代码以输出SQLException和ClassNotFoundException,因为我在浏览器中收到以下输出:com.mysql.jdbc.driver
答案 0 :(得分:1)
您的代码声明此类的Template类和构造函数。如果类甚至没有实例化,为什么会执行它?
除此之外,这是编写JSP页面的一种非常奇怪的方式。你需要阅读一些关于编写简单JSP页面的好书:像“核心Servlets和Javaserver页面:核心技术,第1卷(第2版)”一样 - 这是非常古老但是给初学者提供了线索,在哪里以及如何写简单简单的JSP / Servlets
答案 1 :(得分:1)
将您的System.out.println(carModel)
替换为out.println(carModel)
进行测试〜
以下是您的帖子Why do we write out.println() in jsp instead of System.out.println()?
答案 2 :(得分:0)
我从不在jsp中编写类和方法。如果你想测试jdbc子句是否工作,只需编写一个简单的java文件,使用main方法。如下所示
/**
* Copyright (c) 2014
* Tanry Electronic Technology Co., Ltd.
* ChangSha, China
*
* All Rights Reserved.
*
* First created on May 7, 2015 by liyzh
* Last edited on May 7, 2015 by liyzh
*
* 说明: TODO
*/
package com.tanry.business.module.lc.request;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Test {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/itmd4515?zeroDateTimeBehavior=convertToNull", "itmd4515", "itmd4515");
PreparedStatement ppst = con.prepareStatement("select * from inventory where id = 3");
ResultSet rs = ppst.executeQuery();
while (rs.next()) {
String carModel = rs.getString("carModel");
System.out.println(carModel);
}
rs.close();
ppst.close();
con.close();
} catch (SQLException ex) {
System.err.println(ex.getMessage());
} catch (ClassNotFoundException ex) {
// Logger.getLogger(Template.class.getName()).log(Level.SEVERE,
// null, ex);
}
}
}
使用像eclipse这样的IDE,您可以非常轻松地调试代码。