• /  38
  • 下載費用: 9.90積分  

JSP基礎教程課件JSP7_1.ppt

'JSP基礎教程課件JSP7_1.ppt'
第七講 JSP中使用數據庫教學目的 本講講述JSP中使用JDBC實現數據庫的查詢 。 1 數據源 2 數據庫的查詢 第七講 JSP中使用數據庫 在JSP中可以使用Java的JDBC技術,實現對數據庫中表記錄的查詢、修改和刪除等操作。JDBC技術在JSP開發中占有很重要的地位。 JDBC(Java DataBase Connectivity)是Java數據庫連接API。簡單地說,JDBC能完成三件事:(1) 與一個數據庫建立連接,(2) 向數據庫發送SQL語句,(3) 處理數據庫返回的結果。 JDBC在設計上和ODBC很相似。JDBC和數據庫建立連接的一種常見方式是建立起一個JDBC─ODBC橋接器。由于ODBC驅動程序被廣泛的使用,建立這種橋接器后,使得JDBC有能力訪問幾乎所有類型的數據庫。JDBC也可以直接加載數據庫驅動程序訪問數據庫,我們將在??節討論。 如果使用JDBC─ODBC橋接器訪問數據庫,事先必須設置數據源。7.1 數 據 源 假設要訪問SQL Server服務器上的pubs數據庫,該庫有一個表students 。 為連接一個SQL-Server數據庫,我們需設置一個數據源。在控制面板選擇ODBC數據源。 雙擊ODBC數據源圖標。這里顯示了用戶已有的數據源的名稱。 選擇“用戶DSN”,點擊add按鈕,增加新的數據源。 為新增的數據源選擇驅動程序,因為要訪問SQL Server數據庫,選擇SQL Server,點擊完成按鈕(為數據源選擇了驅動程序),出現設置數據源具體項目的對話框。在名稱欄里為數據源起一個你自己喜歡的名字,這里我們起的名字是sun(當然,如果你喜歡的話,可以把名字叫做moon.)。這個數據源就是指某個數據庫(將來隨著計算機的進步,我們也可能有能力把數據源設成是一個衛星上來的信號)。在“你想連接哪個SQL Server?”欄中選擇或輸入一個數據庫服務器,這里我們選擇了網絡上的另一臺機器:Ping。 單擊“下一步”出現新的畫面,選擇連接SQL Server 的ID。 在這里的對話框中,選擇“使用用戶輸入登錄標識號和密碼的SQL Server驗證”選項,并且我們選擇用戶名為sa (不需要密碼),單擊“下一步”出現選擇數據庫的對話框。 選中“改變默認的數據庫為”復選框,在下拉菜單里,我們選擇用戶sa有權限操作的數據庫pubs。單擊“下一步”出現完成數據源設置的對話框。 單擊“完成”出現你所配置的數據源的信息窗口。 點擊“測試數據源”按鈕,如果正常就會出現數據源設置成功的窗口。續前頁:7.2 JDBC-ODBC橋接器 現在你可以這樣的直觀理解:我們有了一個數據源,這個數據源就是一個數據庫。為了要連接到這個數據庫,需要建立一個JDBC─ODBC橋接器,即加載橋接器驅動程序。 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");這里,Class是包java.lang中的一個類,該類通過調用它的靜態方法forName就可以建立JDBC-ODBC橋接器。建立橋接器時可能發生異常,所以建立橋接器的標準是:try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundException e) {}7.3 查詢記錄 要查詢數據庫中的記錄,必須和數據庫建立連接,由于使用的是JDBC-ODBC方式訪問數據庫,那么就要與數據源建立連接。 (1)連接到數據庫 首先使用包java.sql中的Connection類聲明一個對象,然后再使用類DriverManager調用它的靜態方法getConnection創建這個連接對象:Connection con = DriverManager.getConnection("jdbc:odbc:數據源名字","login name", "password "); 假如您沒有為數據源設置login name 和password,那么連接形式是:Connection con = DriverManager. getConnection("jdbc:odbc:數據源名字", "", "");與數據庫pubs(它就是數據源sun)建立連接,格式如下: try{ Connection con = DriverManager. getConnection("jdbc:odbc:sun", "sa", ""); } catch(SQLException e) {} 這樣就建立了到數據庫pubs的連接。 (2)向數據庫發送SQL語句。 首先使用Statement聲明一個SQL語句對象,然后通過剛才創建的連接數據庫的對象con調用方法createStatment()創建這個SQL語句對象。try {Statement sql=con.createStatement();}catch(SQLException e ){} (3)處理查詢結果 有了SQL語句對象后,這個對象就可以調用相應的方法實現對數據庫中表的查詢和修改。并將查詢結果存放在一個ResultSet類聲明的對象中,也就是說SQL語句對數據庫的查詢操作將返回一個ResultSet對象:ResultSet rs=sql.executeQuery("SELECT * FROM 成績表"); ResultSet對象是以統一形式的列組織的數據行組成。ResultSet對象一次只能看到一個數據行,使用next()方法走到下一數據行,獲得一行數據后,ResultSet對象可以使用getxxxx方法獲得字段值,將位置索引(第一列使用1,第二列使用2等等)或字段名傳遞給getxxxx方法的參數即可。表5.1給了出了ResultSet對象的若干方法。表7.1:ResultSet類的若干方法7.3.1 順序查詢 使用結果集Result的next()方法,可以順序的查詢。一個結果集將游標最初定位在第一行的前面,第一次調用next()方法使游標移動到第一行。next()方法返回一個boolean型數據,當游標移動到最后一行之后返回false。 在下面的例子1中,我們查詢數據庫pubs(數據源sun)中students表里的包含全部字段的記錄。圖7.1 順序查詢例子1(效果如圖7.1所示)Example7_1.jsp: "); while(rs.next()) { out.print(""); out.print(""+rs.getString(1)+""); out.print(""+rs.getString(2)+""); out.print(""+rs.getInt("數學成績")+""); out.print(""+rs.getInt("英語成績")+""); out.print(""+rs.getInt("物理成績")+""); out.print("") ; } out.print(""); con.close(); } catch(SQLException e) {}%>7.3.5 排序查詢 可以在SQL語句中使用ORDER BY子語句,對記錄排序。在下面的例子中,使用SQL語句的ORDER BY子語句查詢所同學的成績,可以選擇按3科的總分從低到高排列記錄、按姓氏拼音排序或英語成績排序。 例如,按總成績排序查詢的SQL語句:SELECT * FROM student ORDER BY 數學成績+英語成績+物理成績。例子6Example7_6:查詢成績: 按姓氏排序 按總分排序 按英語排序 byname1.jsp: <% //獲取提交的排序方式: String name=request.getParameter("R"); if(name==null) {name="";} byte b[]=name.getBytes("ISO-8859-1"); name=new String(b); String number,xingming; Connection con=null; Statement sql=null; ResultSet rs=null; int math,english,physics; try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }續前頁: catch(ClassNotFoundException e){} try { con=DriverManager.getConnection("jdbc:odbc:sun","sa",""); sql=con.createStatement(); String condition="SELECT * FROM students ORDER BY "+name; rs=sql.executeQuery(condition); out.print(""); out.print(""); out.print(""+"學號"); out.print(""+"姓名"); out.print(""+"數學成績"); out.print(""+"英語成績"); out.print(""+"物理成績"); out.print(""+"總成績"); out.print(""); while(rs.next()) { out.print(""); number=rs.getString(1); out.print(""+number+""); 續前頁: xingming=rs.getString(2); out.print(""+xingming+""); math=rs.getInt("數學成績"); out.print(""+math+""); english=rs.getInt("英語成績"); out.print(""+english+""); physics=rs.getInt("物理成績"); out.print(""+physics+""); int total=math+english+physics; out.print(""+total+""); out.print("") ; } out.print(""); con.close(); } catch(SQLException e) { } %>
關 鍵 詞:
jsp jsp7 基礎 教程
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:JSP基礎教程課件JSP7_1.ppt
鏈接地址: http://www.476824.live/p-51617598.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 黑龙江11选5真准网 思安配资 青海快 3今日开奖图 股票期货怎么玩 山东11选五玩法规则 陕西省福彩快乐十分app 福建十一选五走势图手机版 上海时时彩官网开奖 中国配资网站 体彩p3开奖现场直播