Jsp + JavaBean循序漸進教程(四)上

來源:互聯網
上載者:User
js|教程 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;
}
}



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.