我正在编码几个小时,以将数据插入我的SQL数据库,但是什么也没发生。我什至无法调试Java,因为控制台没有任何输出。
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.PreparedStatement;
import java.text.DecimalFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author xxx
*/
public class MyServlet extends HttpServlet {
private static final String URL = "jdbc:mysql://localhost:3306/userdata";
private static final String USER = "root";
private static final String PASSWORD = "root";
private static final DecimalFormat DF2 = new DecimalFormat("#.##");
private static Connection con;
private static Statement stmt;
private static ResultSet rs;
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
try {
String myDriver = "com.mysql.jdbc.Driver";
try {
Class.forName(myDriver);
// opening database connection to MySQL server
con = DriverManager.getConnection(URL, USER, PASSWORD);
// getting Statement object to execute query
// the mysql insert statement
String query = "INSERT INTO customers (customer, currency, amount) values ('Name', 'Currency', 100);";
stmt.executeUpdate(query);
// execute the preparedstatement
// executing SELECT query
rs = stmt.executeQuery(query);
con.close();
stmt.close();
rs.close();
} catch (SQLException sqlEx) {
sqlEx.printStackTrace();
}
}
}
}
我错了,什么都没发生?即使我将此代码用于Java类(而不是Servlet),我也只会收到一个编译错误,但没有消息。
我正在使用IDE Netbeans,而mysql DB是MySQL Workbench。 Java类正在使用main方法。
在Servlet代码中,我看不到您要写任何东西。因此,即使已编译,也不会将任何内容发送回浏览器。您可以将SQL异常写入创建的out编写器。为了更加精确,在您的异常中添加以下代码:out.println(sqlEx.printStackTrace());那至少应该表明您正在返回浏览器的异常。
您在servlet之外遇到的编译错误是什么?
这也许很明显,但是要使JDBC东西在您的服务器上工作,您需要安装,启动和配置MySQL服务器。必须定义引用的表,等等。您可以使用MySQL随附的工具在Java servlet环境之外进行检查。