1. 程式人生 > >關於Java web中servlet連線資料庫的一個細節問題

關於Java web中servlet連線資料庫的一個細節問題

      今天在寫使用者註冊功能的程式碼時,當通過servlet接收表單資料並儲存到資料庫時,沒有出現任何錯誤,但是在資料庫中檢視,第一列使用者名稱顯示為空,無論如何檢查都感覺是對的,後來再把jsp程式碼和servlet程式碼結合著看的時候,終於發現了錯誤:

     在寫jsp頁面時,對使用者名稱所給的名字,在servlet接收時要對應,不然它不會報錯,但是資料庫中儲存的資料卻為空,下面具體看程式碼:

這是寫的一個簡單的jsp使用者註冊頁面,給使用者名稱的名字是username,密碼的名字是keyword,學號的名字是num

 <body>
    <form action="servlet/Login" method="post">
          使用者名稱:<input type="text" name="username"> <br/>
          密  碼 :<input type="keyword" name="keyword"><br/>
          學  號:<input type="num" name="num"><br/>
          <input type="submit" value="註冊">           
    
    </form>
  </body>

下面是獲取表單資訊,並儲存到資料庫中的servlet,注意獲取資訊時名字要和jsp提交的資訊一致,

	response.setContentType("text/html;charset=UTF-8");
		//獲取輸入資訊
		String member = request.getParameter("username");
		String keyword = request.getParameter("keyword");
		String num = request.getParameter("num");
		
		//連線資料庫
		String url = "jdbc:mysql://localhost:3306/thecheck";
		String user="root";
		String password = "19960104";
		
		try {
			 Class.forName("com.mysql.jdbc.Driver");
		
			try {
		   java.sql.Connection conn = DriverManager.getConnection(url, user, password);
		   java.sql.Statement st = conn.createStatement();
		   String sql = "insert into student values("+"'"+member+"',"+"'"+keyword+"',"+"'"+num+"',"+"0)";
	        //System.out.println(sql);
		   st.executeUpdate(sql);
			
		    } catch (SQLException e) {
				
				e.printStackTrace();
			}
			
		    } catch (ClassNotFoundException e) {
		
			  e.printStackTrace();
			}
		   
	}

其中還要注意的是寫的輸入語句要和資料庫中的sql語句對應,否則也會出現錯誤。