本文實例講述了JSP使用JDBC完成動態驗證及采用MVC完成數據查詢的方法。分享給大家供大家參考。具體如下:
一、目標:
① 掌握JDBC鏈接數據庫的基本過程;
② 掌握使用JDBC進行數據查詢。
二、主要內容:
① 在上一次的實例基礎上,通過連接數據庫完成用戶登錄功能,介紹JDBC的基本用法;
② 通過顯示所有用戶信息進一步介紹JDBC的用法和查詢結果的處理。
1、JDBC概念
Java Database Connectivity的縮寫,用于連接Java應用程序與各種關系數據庫的標準接口。對于編程人員來說,連接任何數據庫都是相同的。
2、要使用JDBC開發應用需要哪些準備工作?
安裝數據庫,包括數據庫表的創建;
根據數據庫的類型,得到數據庫的JDBC驅動程序,不同的數據庫管理系統需要不同的JDBC驅動程序,并且不同版本的數據庫管理系統需要的驅動程序有可能不同的;這里使用Oracle數據庫,驅動程序需要放在WEB-INF/lib下面。
數據庫的相關信息:數據庫的IP地址,服務的端口號,數據庫的名字,連接數據庫的用戶名和密碼。
3、 舉例:使用數據庫對用戶登錄信息進行驗證。
需要修改User.java中驗證用戶信息的方法。
1)在類的前面增加了一個import語句:
- public boolean check()
- {
- /*
- if(username==null || userpass==null)
- return false;
- if(username.equals("zhangsan") && userpass.equals("lisi"))
- {
- return true;
- }else{
- return false;
- }
- */
- Connection con = null;
- Statement stmt = null;
- ResultSet rs = null;
- boolean b = true;
- try{
- // 指出連接數據庫所需要的驅動程序
- Class.forName("oracle.jdbc.driver.OracleDriver");
- // 建立與數據庫之間的連接
- // myserver修改為數據庫服務器IP,mydb為數據庫名
- con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger");
- // 編寫查詢數據庫信息的SQL語句
- String sql="select * from usertable where username='"+username+"' and userpass='"+userpass+"'";
- System.err.println(sql);
- // 創建語句對象,用于執行SQL語句
- stmt = con.createStatement();
- // 執行SQL語句得到結果集
- rs = stmt.executeQuery(sql);
- // 判斷rs中是否有數據
- if(rs.next())
- b = true;
- else
- b = false;
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- finally{
- // 關閉相關對象
- if(rs!=null) try{ rs.close(); }catch(Exception ee){}
- if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}
- if(con!=null) try{ con.close(); }catch(Exception ee){}
- }
- return b;
- }
4、運行測試
可以使用數據庫中的用戶名和口令進行登錄。
5、向頁面傳遞查詢結果
很多時候,客戶端需要從服務器端得到數據并顯示,因為數據的查詢是由JavaBean完成的,對JavaBean的調用是通過Servlet完成的,Servlet中可以得到查詢的結果,但是顯示信息是由JSP頁面完成的,如何把Servlet中查詢的信息傳遞給JSP頁面呢?
前面介紹過可以通過request、session和application傳遞信息,因為可以讓Servlet和JSP處于相同的請求,所以3個對象都可以使用。但是因為session和application的保存時間比較長,容易造成服務器資源的浪費,所以通常采用request存儲。
下面通過查詢并顯示所有信息的功能來介紹具體用法。需要完成的工作如下:
① 在User.java中添加查詢所有用戶信息的方法;
② 編寫查詢所有用戶信息的控制器;
③ 編寫顯示信息的JSP頁面。
6、 在User.java中添加方法
查詢所有用戶信息的方法如下:
- public ArrayList getAllUser()
- {
- Connection con = null;
- Statement stmt = null;
- ResultSet rs = null;
- ArrayList users = new ArrayList();
- try{
- // 指出連接數據庫所需要的驅動程序
- Class.forName("oracle.jdbc.driver.OracleDriver");
- // 建立與數據庫之間的連接
- con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger");
- // 編寫查詢數據庫信息的SQL語句
- String sql="select * from usertable";
- // 創建語句對象,用于執行SQL語句
- stmt = con.createStatement();
- // 執行SQL語句得到結果集
- rs = stmt.executeQuery(sql);
- // 遍歷結果集
- while(rs.next())
- {
- String username = rs.getString(1);
- String userpass = rs.getString(2);
- // java.util.Date birthday = rs.getDate(3);
- // int age = rs.getInt(4);
- User user = new User();
- user.setUsername(username);
- user.setUserpass(userpass);
- users.add(user);
- }
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- finally{
- // 關閉相關對象
- if(rs!=null) try{ rs.close(); }catch(Exception ee){}
- if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}
- if(con!=null) try{ con.close(); }catch(Exception ee){}
- }
- return users;
- }
新聞熱點
疑難解答