2014-09-04 16 views
-3

我是Java Web Development的新手。開始學習MVC。我面臨的問題是數據不能保存在數據庫中。 我沒有得到任何異常。 RequestDispatcher只顯示我已包含的頁面。數據不會在數據庫中使用java類和bean插入

對不起,如果我沒有把這個問題寫在類別。

代碼是在這裏

控制器代碼:

package manipulationStudentData; 


import java.text.SimpleDateFormat; 
import java.util.*; 
import java.io.IOException; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 


@WebServlet(description = "Insertion Of Data", urlPatterns = { "/InsertionOfData" }) 
public class InsertionController extends HttpServlet { 
private static final long serialVersionUID = 1L; 

public InsertionController() { 
    super(); 

} 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws 
ServletException, IOException { 
    ManipulateStudentBean insertStudentData=new ManipulateStudentBean(); 
    DatabaseActivityDao database=new DatabaseActivityDao(); 

    String date=""+request.getParameter("day")+"-"+request.getParameter("month")+"- 
    "+request.getParameter("year"); 

    Date dob=null; 

    try{ 
     dob=new SimpleDateFormat("dd-MM-yyyy").parse(date); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 


    insertStudentData.setFirstName(request.getParameter("firstName")); 
    insertStudentData.setLastName(request.getParameter("lastName")); 
    insertStudentData.setFatherName(request.getParameter("fatherName")); 
    insertStudentData.setGender(request.getParameter("gender")); 
    insertStudentData.setDob(dob); 
    insertStudentData.setClassNo(request.getParameter("classNo")); 
    insertStudentData.setAddress(request.getParameter("address")); 

    database.InsertData(insertStudentData); 
    request.getRequestDispatcher("/ManipulationPage.jsp").include(request, response); 


} 

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws 
ServletException, IOException { 
    doGet(request,response); 
} 

} 

BeanClass:

package manipulationStudentData; 

import java.util.Date; 

public class ManipulateStudentBean { 

    int studentId; 
String firstName=""; 
String lastName=""; 
String fatherName=""; 
String gender=""; 
    Date dob; 
String classNo=""; 
String address=""; 


public int getStudentId() { 
    return studentId; 
} 
public void setStudentId(int studentId) { 
    this.studentId = studentId; 
} 

public String getFirstName() { 
    return firstName; 
} 
public void setFirstName(String firstName) { 
    this.firstName = firstName; 
} 
public String getLastName() { 
    return lastName; 
} 
public void setLastName(String lastName) { 
    this.lastName = lastName; 
} 
public String getFatherName() { 
    return fatherName; 
} 
public void setFatherName(String fatherName) { 
    this.fatherName = fatherName; 
} 
public String getGender() { 
    return gender; 
} 
public void setGender(String gender) { 
    this.gender = gender; 
} 
public Date getDob() { 
    return dob; 
} 
public void setDob(Date dob) { 
    this.dob = dob; 
} 
public String getClassNo() { 
    return classNo; 
} 
public void setClassNo(String classNo) { 
    this.classNo = classNo; 
} 
public String getAddress() { 
    return address; 
} 
public void setAddress(String address) { 
    this.address = address; 
} 

} 

插入到數據庫的代碼只需添加方法在這裏:

public void InsertData(ManipulateStudentBean studentdata){ 



    String query="INSERT INTO students 
    (FirstName,LastName,FatherName,Gender,DateOfBirth,Class,Address) VALUES " 
    + "('" + studentdata.getFirstName() +" ' ' "+ studentdata.getLastName() +" ' '"+ 
    studentdata.getFatherName() +" ' '" + studentdata.getGender() +" ' '"+ 
    studentdata.getDob() +" ' '" + studentdata.getClassNo() 
    + " ' '" + studentdata.getAddress() + " ' '" ; 

    try{ 

     connection=DatabaseConnection.getConnection(); 
     stment=connection.createStatement(); 
     stment.executeQuery(query); 


    }catch(Exception e){ 
     e.printStackTrace(); 
    } 

finally{ 

     /*Closing Statement*/ 

     try{ 
      if(stment !=null){ 
       stment.close(); 
      } 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 

     /*Closing Connection*/ 

     try{ 
      if(connection !=null){ 
       connection.close(); 
      } 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 

    } 
} 

相同的查詢工作我有不使用MVC模型進行檢查。

+0

你得到任何異常? – Chaitanya 2014-09-04 15:48:56

+0

當我檢查數據庫數據沒有插入時,沒有ManipulationPage.jsp出現 – 2014-09-04 15:50:18

+0

您是否使用JDBC驅動程序創建到數據庫的連接? – reporter 2014-09-04 15:51:28

回答

0

更改您的查詢是這樣的:

String query="INSERT INTO students 
    (FirstName,LastName,FatherName,Gender,DateOfBirth,Class,Address) VALUES " 
    + "('" + studentdata.getFirstName() +" ', ' "+ studentdata.getLastName() +" ', '"+ 
    studentdata.getFatherName() +" ', '" + studentdata.getGender() +" ' , '"+ 
    studentdata.getDob() +" ' , '" + studentdata.getClassNo() 
    + " ' , '" + studentdata.getAddress() + " ')" ; 

由湯姆建議你缺少逗號&右括號。

由於您只是捕獲異常並打印堆棧跟蹤,您將在服務器日誌中看到異常,之後servlet將請求轉發到JSP頁面。

或者,而不是使用您可以使用準備好的語句聲明,在這裏看到的例子:

http://www.mkyong.com/jdbc/jdbc-preparestatement-example-insert-a-record/