我正在尝试使用 doPost()
方法在此 servlet 中建立与数据库 (MySQL) 的连接。我不知道问题出在哪里。我可以在此 servlet 内建立连接还是需要创建一个新的 Java 类?
package com.EventListing.servlets;
import java.io.IOException;
import java.sql.Connection;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ViewEventListing extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
String eventTitle= request.getParameter("eventTitle");
String location = request.getParameter("location");
out.println("Welcome "+ eventTitle+"! The Email Address "+location+" has been "
+ "added to our mailing list.");
try {
Class.forName("com.mysql.jdbc.Driver");
out.println("Driver Loading Done!");
} catch(ClassNotFoundException e) {
e.printStackTrace();
}
String connURL = "jdbc:mysql://localhost/eventlistings" ;
String user = "root";
String pass = "sheridan";
Connection conn ;;
try {
conn = DriverManager.getConnection(connURL, user, pass);
} catch (SQLException ex) {
Logger.getLogger(ViewEventListing.class.getName()).log(Level.SEVERE, null, ex);
}
out.println("Connection Done!");
String sql = "INSERT INTO eventlistings "+"(Title, Location)" +
"VALUES('simran', 'Brampton');";
PreparedStatement ps = conn.prepareStatement();
out.close();
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
这是一个 servlet,我想使用它从 MySQL 获取一些数据,但我什至无法连接到数据库。当我尝试使用准备好的语句(即preparedStatement ps)时,出现错误。
最佳答案
仅在您想要使用不同参数重用 sql 的情况下使用 PreparedStatment
建议您改用
语句 stmt = conn.createStatement();
stmt.execute(sql);
而不是:
PreparedStatement ps = conn.prepareStatement();
关于java - Java Web 应用程序中通过 NetBeans 的 JDBC 到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28575709/