Today: Yesterday: Total: Online:
カテゴリー
その他
  • RSS1.0
  • RSS2.0
  • atom0.3
  • valid XHTML1.0
  • valid CSS2
  • Credit
RSSリーダーで購読する | この日記のはてなブックマーク数 | プロフィール
コメントが一番多い記事(233コメント):人の心理の裏をかくホームページ集客術:リピータになってもらうためには
ツイートが一番多い記事(94ツイート):ちょっと待て!twitterやfacebookに子供の写真を掲載する親達への警告
いいねが一番多い記事(574いいね):facebookスパムに要注意。なりすましの見分け方とアカウント乗っ取りの手口(2013年度版)

カテゴリー » JAVA » JSP November 02, 2010

JSPでDBアクセス(データベースアクセス) ID:1288679917


・JSPから直接データベースにアクセスすることはできない
・データベースにアクセスを行うオリジナルクラスまたはBeanを作成し、
 それをJSP側から使用することで間接的にデータベースにアクセスする。

例)

MyDBAccess.java 

 import java.sql.*;
 
 public class MyDBAccess {
 
     private String driver;
     private String url;
     private String user;
     private String password;
     private Connection connection;
     private Statement statement;
     private ResultSet resultset;
 
     /**
      * コンストラクタ
      * @param driver ドライバー
      * @param url URL
      * @param user ユーザー名
      * @param password パスワード
      */
     public MyDBAccess(String driver, String 
url, String user, String password) {
         this.driver = 
driver;
         this.url = url;
         this.user = user;
         this.password 
= password;
     }
 
     /**
      * 引数なしのコンストラクタ
      * 既定値を使用する
      */
     public MyDBAccess() {
         driver = "org.postgresql.Driver";
         url = "jdbc:postgresql://localhost:5432/jspdb";
         user = "postgres";
         password = "";
     }
 
     /**
      * データベースへの接続を行う
      */
     public synchronized void open() throws 
Exception {
         Class.forName(driver);
         connection = DriverManager.getConnection(url, 
user, password);
         statement = connection.createStatement();
     }
 
     /**
      * SQL 文を実行した結果の ResultSet を返す
      * @param sql SQL 文
      */
     public ResultSet getResultSet(String sql) 
throws Exception {
         if ( statement.execute(sql) 
) {
             
return statement.getResultSet();
         }
         return null;
     }
 
     /**
      * SQL 文の実行
      * @param sql SQL 文
      */
     public void execute(String sql) throws 
Exception {
         statement.execute(sql);
     }
 
     /**
      * データベースへのコネクションのクローズ
      */
     public synchronized void close() throws 
Exception {
         if ( resultset 
!= null ) resultset.close();
         if ( statement 
!= null ) statement.close();
         if ( connection 
!= null ) connection.close();
     }
}

JSP側
<%@ page import="java.sql.*, atmarkit.MyDBAccess"
     contentType="text/html; charset=euc-jp" 
%>
 <%
 // 内容: データベースにアクセスする
 
 // MyDBAccess のインスタンスを生成する
 MyDBAccess db = new MyDBAccess();
 
 // データベースへのアクセス
db.open();
 
// メンバーを取得
ResultSet rs = db.getResultSet("select * from member");
 
// メンバー一覧表示用のテーブル
String tableHTML = "<table border=1>";
tableHTML += "<tr bgcolor=\"000080\"><td><font color=\"white\">メンバーID</font></td>"
     + "<td><font color=\"white\">名前</font></td>"
     + "<td><font color=\"white\">カナ</font></td>";
 
// 取得された各結果に対しての処理
while(rs.next()) {
 
     int id = rs.getInt("member_id"); // メンバーIDを取得
     String name = rs.getString("name"); // 
メンバー名を取得
     String kana = rs.getString("kana"); // 
メンバー名(カナ)を取得
 
     // 文字コードを EUC_JP からUnicode へ変換
     name = new String(name.getBytes("8859_1"), 
"EUC_JP");
     kana = new String(kana.getBytes("8859_1"), 
"EUC_JP");
 
     // テーブル用HTMLを作成
     tableHTML += "<tr><td align=\"right\">" 
+ id + "</td>"
               
+ "<td>" + name + "</td><td>" + kana + "</td></tr>";
}
 
tableHTML += "</table>";
 
// データベースへのコネクションを閉じる
db.close();
 
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>データベースへのアクセス</title></head>
<body>
<p>-- データベースへのアクセス --</p>
<p>
<b>メンバーの一覧</b><br>
<%= tableHTML %>
</p>
</body>
</html>
http://www.atmarkit.co.jp/fjava/rensai/jsp10/jsp10.html
— posted by midilin @ 03:38PM
[コメントが多かった順の記事]
人の心理の裏をかくホームページ集客術:リピータになってもらうためには(233)
ホームページ心理学第2弾「メールの書きだしとホームページ運営・集客の関係」(76)
娘が生まれた(69)
ゲームと言えば、何を思い出す? (50)
Microsoftからアクセス (30)
「目標の立て方」と「努力」と「実行力」(26)