麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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; 
?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品久久久久久久久久了 | 色人阁五月天 | 日日做夜夜操 | 久久国产精品二国产精品中国洋人 | omofun 动漫在线观看 | 久久国产精品一区 | 天天草夜夜爽 | 国内精品久久久久影院不卡 | 亚洲男人的天堂在线视频 | 黄色视屏免费在线观看 | 国产午夜精品久久久久 | 国产亚洲精品久久久久婷婷瑜伽 | 国产人妖一区二区 | 欧美日韩精品一区二区三区蜜桃 | 九九热免费视频在线观看 | arabxxxxvideos | 久久午夜免费视频 | 伊人yinren22综合网色 | 精品国产一区二区亚洲人成毛片 | 91九色蝌蚪国产 | 得得啪在线 | 91精品国产综合久久婷婷香 | 成人午夜视频免费 | 美女福利视频国产 | 欧美 国产 综合 | 免费黄色一级网站 | 亚洲午夜久久久久 | 中文字幕精品在线视频 | 成人店女老板视频在线看 | xxxxhd73国产 | 国产流白浆高潮在线观看 | www.guochanav.com| 美女毛片在线观看 | 国产噜噜噜噜噜久久久久久久久 | 黄色大片在线观看 | 久久久久一本一区二区青青蜜月 | 男人久久天堂 | 国产一区免费观看 | 亚洲成人精品视频 | 中国fx性欧美xxxx | 麻豆91精品91久久久 |