a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > JSP > 正文

JSP使用JDBC完成動態驗證及采用MVC完成數據查詢的方法

2024-09-05 00:22:20
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JSP使用JDBC完成動態驗證及采用MVC完成數據查詢的方法,實例分析了JDBC連接數據庫及查詢數據庫的實現技巧,并結合MVC框架進行分析說明,需要的朋友可以參考下
 

本文實例講述了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語句:

復制代碼代碼如下:
import java.sql.*;

2)增加的后的check方法如下:
  1. public boolean check() 
  2. /* 
  3.    if(username==null || userpass==null) 
  4.      return false; 
  5.    if(username.equals("zhangsan") && userpass.equals("lisi")) 
  6.    { 
  7.      return true; 
  8.    }else{ 
  9.      return false; 
  10.    } 
  11. */ 
  12.    Connection con = null
  13.    Statement stmt = null
  14.    ResultSet rs = null
  15.    boolean b = true
  16.    try
  17.      // 指出連接數據庫所需要的驅動程序 
  18.      Class.forName("oracle.jdbc.driver.OracleDriver"); 
  19.     // 建立與數據庫之間的連接 
  20. // myserver修改為數據庫服務器IP,mydb為數據庫名 
  21.     con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger"); 
  22.     // 編寫查詢數據庫信息的SQL語句 
  23.     String sql="select * from usertable where username='"+username+"' and userpass='"+userpass+"'"
  24.     System.err.println(sql); 
  25.     // 創建語句對象,用于執行SQL語句 
  26.     stmt = con.createStatement(); 
  27.     // 執行SQL語句得到結果集 
  28.     rs = stmt.executeQuery(sql);    
  29.     // 判斷rs中是否有數據 
  30.     if(rs.next()) 
  31.      b = true
  32.     else 
  33.      b = false
  34.    }catch(Exception e){ 
  35.      System.out.println(e.getMessage()); 
  36.    } 
  37.    finally
  38.     // 關閉相關對象 
  39.     if(rs!=nulltry{ rs.close(); }catch(Exception ee){} 
  40.     if(stmt!=nulltry{ stmt.close(); }catch(Exception ee){} 
  41.     if(con!=nulltry{ con.close(); }catch(Exception ee){} 
  42.    } 
  43.    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中添加方法

查詢所有用戶信息的方法如下:
 

  1. public ArrayList getAllUser() 
  2.    Connection con = null
  3.    Statement stmt = null
  4.    ResultSet rs = null
  5.    ArrayList users = new ArrayList(); 
  6.    try
  7.     // 指出連接數據庫所需要的驅動程序 
  8.     Class.forName("oracle.jdbc.driver.OracleDriver"); 
  9.     // 建立與數據庫之間的連接 
  10.     con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger"); 
  11.     // 編寫查詢數據庫信息的SQL語句 
  12.     String sql="select * from usertable"
  13.     // 創建語句對象,用于執行SQL語句 
  14.     stmt = con.createStatement(); 
  15.     // 執行SQL語句得到結果集 
  16.     rs = stmt.executeQuery(sql);    
  17.     // 遍歷結果集 
  18.     while(rs.next()) 
  19.     { 
  20.       String username = rs.getString(1); 
  21.       String userpass = rs.getString(2); 
  22.       // java.util.Date birthday = rs.getDate(3); 
  23.       // int age = rs.getInt(4); 
  24.       User user = new User(); 
  25.       user.setUsername(username); 
  26.       user.setUserpass(userpass); 
  27.       users.add(user); 
  28.     } 
  29.    }catch(Exception e){ 
  30.      System.out.println(e.getMessage()); 
  31.    } 
  32.    finally
  33.     // 關閉相關對象 
  34.     if(rs!=nulltry{ rs.close(); }catch(Exception ee){} 
  35.     if(stmt!=nulltry{ stmt.close(); }catch(Exception ee){} 
  36.     if(con!=nulltry{ con.close(); }catch(Exception ee){} 
  37.    }    
  38.    return users; 
?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩av一区二区三区在线观看 | 精品国产一区在线 | 久久人人爽视频 | 男女免费视频 | 国产精品视频 | 青草精品 | 国产不卡在线观看 | 一级黄色片子看看 | 久久91 | 老汉色影院 | 九九九九九九精品任你躁 | 欧美日韩在线二区 | 天天干天天曰天天操 | 欧美6一10sex性hd | 成人在线免费视频 | 91精品福利 | 国产精品日韩一区二区 | 毛片毛片毛片毛片毛片毛片毛片毛片 | 日本亚洲精品成人欧美一区 | 在线国产视频 | 日韩av在线一区二区三区 | 国产免费一区 | 国产日韩精品一区二区在线观看播放 | 中文字幕日韩在线 | 久久精品国产一区二区电影 | 日韩国产在线 | 久久涩涩 | 久久成人免费视频 | 久久久久久亚洲 | 九九九色 | 欧美日韩高清 | 99精品视频在线免费观看 | 日本一区二区不卡视频 | 欧美中文字幕在线观看 | 亚洲444kkkk在线观看最新 | 国产精品久久久久久久久久新婚 | 综合一区二区三区 | 久久精品国产亚 | 黄在线免费观看 | 日本亚洲视频 | 国产一区二区精品丝袜 |