2012-11-11 73 views
2

我想用jsp代碼向mysql數據庫插入行,但是我不能。 這裏是沒有的HTML表單我的JSP代碼:用jsp插入一行到MySQL表

<% 
String login = request.getParameter("login"); 
String password = request.getParameter("password"); 
String full_name = request.getParameter("full_name"); 
String ulevel = request.getParameter("ulevel"); 
String team_id = request.getParameter("team_id"); 

Connection connection = null; 
PreparedStatement pstatement = null; 
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
int updateQuery = 0; 
if(login!=null && password!=null && full_name!=null && ulevel!=null && team_id!=null){ 
if(login!="" && password!="" && full_name!="" && ulevel!="" && team_id!="") { 
    try { 
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/android","root","root"); 
String queryString = "INSERT INTO users(user_id,login,password,full_name,ulevel,team_id) VALUES (null, ?, ?, ?, ?, ?)"; 
pstatement = connection.prepareStatement(queryString); 
pstatement.setString(2, login); 
pstatement.setString(3, password); 
pstatement.setString(4, full_name); 
pstatement.setString(5, ulevel); 
pstatement.setString(6, team_id); 
updateQuery = pstatement.executeUpdate(); 
if (updateQuery != 0) { %> 

當我按下提交後,網頁顯示我:

型狀態報告消息descriptionThe請求的資源()是 不可用。

P.S:user_id被設置爲在MySQL表autoincrement,所以我用null

但我不知道,that's正道......

我從運行的NetBeans 7.0.1

+2

附註:不要把邏輯放在JSP中,將它移動到一個servlet。 – Tomer

+0

我有另一個用於從表中選擇列的jsp代碼......它在沒有servlet的情況下工作正常。 – steven967

+1

您錯過了這一點,它會正常工作,但混合表示層(JSP)和業務邏輯層(Servlet)被認爲是不好的做法。 – Tomer

回答

2

因爲ID代碼自動遞增,請從擺脫它列表,準備陳述正在尋找其參數索引1

String queryString = "INSERT INTO users(login,password,full_name,ulevel,team_id) VALUES (?, ?, ?, ?, ?)"; 
pstatement = connection.prepareStatement(queryString); 
pstatement.setString(1, login); 
pstatement.setString(2, password); 
pstatement.setString(3, full_name); 
pstatement.setString(4, ulevel); 
pstatement.setString(5, team_id); 

下面這一項沒有測試

剛開始你1參數,因爲只有5個被定義的參數。

String queryString = "INSERT INTO users(user_id,login,password,full_name,ulevel,team_id) VALUES (null, ?, ?, ?, ?, ?)"; 
pstatement = connection.prepareStatement(queryString); 
pstatement.setString(1, login); 
pstatement.setString(2, password); 
pstatement.setString(3, full_name); 
pstatement.setString(4, ulevel); 
pstatement.setString(5, team_id); 
+0

我試試看,但它再次顯示我輸出,我發佈在firts post ... – steven967

0

我發現了這個問題。錯誤是以html格式,在屬性action,我有一個源文件,這是我從未有過。 :/