<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      Jsp + JavaBean循序漸進圖文詳細教程(4)上

      [摘要]JavaServer Pages+JavaBeans的數據庫操作應用  上面已經講了一個簡單的JavaBean應用的計數器例子,當然在實際程序過程中,涉及的更多的還是和數據庫相關的操作,所以在這一節...
      JavaServer Pages+JavaBeans的數據庫操作應用

        上面已經講了一個簡單的JavaBean應用的計數器例子,當然在實際程序過程中,涉及的更多的還是和數據庫相關的操作,所以在這一節我們將重點闡述JavaServer Pages和JavaBeans如何對數據庫進行操作。這里我們選取了一個比較有代表性比較實用的例子,那就是用戶注冊管理,因為這在網上使用比較的頻繁,不管是注冊Email、有獎調查、購買物品或者加入社區等等都會涉及到一個用戶注冊的問題;另外一方面,它又比較有代表性,涉及到了數據庫的記錄增加,記錄顯示等常見操作,所以我們就拿用戶注冊開刀了。

        程序采用Oracle Jdeveloper3.1開發,運行環境為Wiin2000+Tomcat3.1,數據庫系統采用了Oracle8.16i。

        首先我們建立一個數據庫demodb,其字段如下面所示

      username VARCHAR2(20) 用戶名
      password VARCHAR2(20) 密碼
      email VARCHAR2(30) Email地址
      homepage VARCHAR2(50) 主頁
      signs VARCHAR2(200) 簽名
      regtime DATE 注冊時間

        接著我們建立幾個JavaBeans和JavaServer Pages文件

      db.java文件(封裝數據庫連接及一些底層操作)
      adduser.java文件(進行用戶數據的讀取以及添加操作)
      newuser.jsp文件(用戶新增頁面,用于輸入用戶注冊信息)
      donewuser.jsp文件(進行用戶注冊信息添加)
      listuser.jsp文件(所有的注冊用戶信息列表)

        為了方便大家看代碼,在很多地方都進行了詳細的注釋和講解,至于JavaBean中涉及到Java語法結構的東西,請大家參考Java書籍。

        db.java文件

        說明:這個JavaBean封裝數據庫連接及一些底層操作,派生出的類可以直接調用這些方法,另外提供了一個toChinese方法,主要用來進行中文數據的處理。

        // Copyright (c) 2000 http://jspbbs.yeah.net
      package lyf;
      /**
      * A Class class.
      * $#@60;P$#@62;
      * @author liuyufeng
      */

        //聲明類庫文件
      import oracle.jdbc.driver.*;
      import java.net.*;
      import java.sql.*;
      import java.lang.*;
      import java.io.*;
      import java.util.*;
      public class db br>   //成員變量初始化
      Connection conn = null; //數據庫連接
      ResultSet rs = null; //記錄集
      String Username=""; //用戶名
      String Password=""; //密碼
      String Email=""; //email
      String Homepage=""; //主頁
      String Signs=""; //簽名
        //db的構建器
      public db() {
      try {
        //注冊數據庫驅動程序為Oracle驅動
      Class.forName(new oracle.jdbc.driver.OracleDriver());
      }
      catch(java.lang.ClassNotFoundException e) {
        //這樣寫是為了方便調試程序,出錯打印mydb()就知道在什么地方出錯了
      System.err.println("mydb(): " + e.getMessage());
      }
      }

        //executeQuery方法用于進行記錄的查詢操作

        //入口參數為sql語句,返回ResultSet對象
      public ResultSet executeQuery(String sql) {
      rs = null;
      try {
        //建立數據庫連接,使用Oracle的一種thin連接方式,demo為主機名字,demodb為數據庫,后面的兩個demo為用戶名和密碼
      conn = DriverManager.getConnection("jdbc:oracle:thin:@demo:1521:demodb","demo","demo");
      Statement stmt = conn.createStatement();
        //執行數據庫查詢操作
      rs = stmt.executeQuery(sql);
      }
      catch(SQLException ex) {
      System.err.println("db.executeQuery: " + ex.getMessage());
      }
      return rs;
      }

        //executeUpdate方法用于進行add或者update記錄的操作

        //入口參數為sql語句,成功返回true,否則為false
      public boolean executeUpdate(String sql) {
      boolean bupdate=false;
      rs = null;
      try {
        //建立數據庫連接,其它參數說明同上面的一樣
      conn = DriverManager.getConnection("jdbc:oracle:thin:@demo:1521:demodb","demo","demo");
      Statement stmt = conn.createStatement();
      int rowCount = stmt.executeUpdate(sql);
        //如果不成功,bupdate就會返回0
      if(rowCount!=0)bupdate=true;
      }
      catch(SQLException ex) {
        //打印出錯信息
      System.err.println("db.executeUpdate: " + ex.getMessage());
      }
      return bupdate;
      }

        //toChinese方法用于將一個字符串進行中文處理

        //否則將會是???這樣的字符串
      public static String toChinese(String strvalue) {
      try{
      if(strvalue==null)
      {
      return null;
      }
      else
      {
      strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
      return strvalue;
      }
      }catch(Exception e){
      return null;
      }
      }




      日韩精品一区二区三区高清