2016-07-12 2 views
1

직원 ID를위한 mysql 데이터베이스를 검색하고 관련 내용을 표시하는 코드를 작성하려고합니다.Servlet to MYSQL connectivity

데이터베이스에 연결하기 위해 employee id와 servlet 코드를 입력하기 위해 index.jsp를 작성했습니다. 내 문제는이 문을 실행하지 그것은 나에게 출력 발생입니다 ... ...

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); 
} 

} 
+3

당신은'SQLException이 실행되지 않은 이유는'SQLException'을 가지고 있기 때문에''s.printStackTrace()'를 SQLException catch 블록 안에 넣고 예외를 체크하십시오. –

답변

1

이 잘 전혀 보이지 않는다 제발 도와주세요 "실행되지 않는 SQL 문을!"

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

이미 쿼리의 ID을 연결하고 있기 때문에, 그냥해야한다 :

ResultSet rs = st.executeQuery(sqlquery); 

또한 코드가 SQL 주입 공격에 넓은 열려 있습니다.

+0

완벽한 !! 좋은 캐치. 정말 고맙습니다. SQL Injection 공격으로부터 어떻게 막을 수 있습니까? – sady

+1

준비된 문 사용. –

+0

죄송합니다, Java/JSP를 처음 사용했습니다. 예를 들어 주시겠습니까? 코드에 어떻게 추가합니까? – sady