【问题标题】:Servlet to MYSQL connectivityServlet 到 MYSQL 的连接
【发布时间】:2016-11-14 03:52:57
【问题描述】:

我正在尝试编写代码来搜索 mysql 数据库中的员工 ID 并显示相关内容。

我已经编写了 index.jsp 来输入员工 ID 和 servlet 代码以连接到数据库。我的问题是它没有执行语句,它给我一个输出“SQL语句没有执行!”...请帮助我...

    package mypkg;


import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class calandar extends HttpServlet {
/**
     * 
     */
    private static final long serialVersionUID = 1L;

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html"); 
Connection con = null;


String url = "jdbc:mysql://localhost:3306/escp?useSSL=false";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "password";

String id="";
id=request.getParameter("Id");
String sqlquery="SELECT * FROM employee WHERE emp_id='"+id+"'";

try{
Class.forName(driver);
con = DriverManager.getConnection(url, user, pass);
try{
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sqlquery+id);
while (rs.next()) {

}
}catch (SQLException s){
System.out.println("SQL statement is not executed!");
}
}
catch (Exception e){
e.printStackTrace();
}

RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/Result.jsp");
dispatcher.forward(request, response); 
}

}

【问题讨论】:

  • 因为你有一个SQLException,这就是你得到输出为"SQL statement is not executed!"的原因,请将s.printStackTrace()放在SQLException catch块中并检查异常。

标签: java mysql jsp servlets


【解决方案1】:

这看起来根本不对:

ResultSet rs = st.executeQuery(sqlquery+id);

由于您已经在查询中连接 ID,它应该只是:

ResultSet rs = st.executeQuery(sqlquery);

另请注意,您的代码很容易受到 SQL 注入攻击。

【讨论】:

  • 完美!!接得好。太感谢了。如何防止它受到 SQL 注入攻击?
  • 使用准备好的语句。
  • 抱歉,我是 Java/JSP 新手。你能给我一个例子吗?如何在我的代码中添加它?
猜你喜欢
  • 2017-07-16
  • 2011-12-27
  • 2013-10-06
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 2016-09-02
  • 2018-10-16
相关资源
最近更新 更多