Re:SALOON & VBA

JAVA使いへの道②

その後、JSPの解説ページを波乗りしていたら
何だか簡単に出来そうなので、沖へと漕ぎ出しました。無謀。

で、参考にしたのは、

@IT アイティメディアの
Tomcatを使う「JSPプログラミング」(10):データベースと連携する
というページ。
ほぼ、そのまま参考、というか借用というか

こんどは、JavaとJSPで2種類
■\workspace\BOOKLOG\src\BOOKLOG\DbAccess.java
package BOOKLOG;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class DbAccess {
  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 DbAccess(String driver, String url, String user, String password) {
    this.driver = driver;
    this.url = url;
    this.user = user;
    this.password = password;
  }
  /**
   * 引数なしのコンストラクタ
   * 既定値を使用する
   */
  public DbAccess() {
    driver = "oracle.jdbc.driver.OracleDriver";
    url = "jdbc:oracle:thin:@//localhost:1521/PDBORCL";
    user = "TESTUSER";
    password = "TESTPWD";
  }
  /**
   * データベースへの接続を行う
   */
  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();
  }
}

■\workspace\BOOKLOG\WebContent\BookLogJSP.jsp
<%@ page import="java.sql.*, BOOKLOG.DbAccess"
  contentType="text/html; charset=UTF-8" %>
<%
// 内容: データベースにアクセスする
// DBAccess のインスタンスを生成する
DbAccess db = new DbAccess();
// データベースへのアクセス
db.open();
// 読書履歴を取得
ResultSet rs = db.getResultSet("select ISBN13,BookName,Author from BOOKLOG");
// 読書履歴一覧表示用のテーブル
String tableHTML = "<table border=1>";
tableHTML += "<tr bgcolor=\"000080\"><td><font color=\"white\">ISBN13</font></td>"
  + "<td><font color=\"white\">書名</font></td>"
  + "<td><font color=\"white\">著者</font></td>";
// 取得された各結果に対しての処理
while(rs.next()) {
  String id = rs.getString("ISBN13");    // ISBN13を取得
  String title = rs.getString("BookName"); // 書名を取得
  String author = rs.getString("Author");  // 著者を取得
  // テーブル用HTMLを作成
  tableHTML += "<tr><td align=\"right\">" + id + "</td>"
       + "<td>" + title + "</td><td>" + author + "</td></tr>";
}
tableHTML += "</table>";
// データベースへのコネクションを閉じる
db.close();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>読 書 履 歴 管 理</title>
</head>
<body>
<p>
<%= tableHTML %>
</p>
</body>
</html>

たったこれだけ、簡単じゃん
と思ったところが・・・

実行してみると

java.lang.ClassNotFoundException

とエラーが出る。延々出る。全部英語だし、訳わからん。
ネットでまたまた延々、検索して、見つけた答えが、
JDBCドライバの置いてる位置が違うぞい・・というもの
JSPの方のフォルダのlib配下にないと読めん
ということらしい、言われてみればそうだけど・・・そんなん気付かんわ

で、それが解決したら今度は

Unsupported major.minor version 51.0

またまた、出ましたよ違うエラーが・・・(ガーン)
こっちも、ネットで延々、検索して
Javaのバージョンが古いわ、ぼけ
ということらしい・・・

Java7 にしてもダメ
じゃあ、Java8は・・・
やっぱりダメじゃん

と諦めかけたのだけど

TOMCATも、VERSIONが表示されていて
こっちも、Java8相当のやつに変えたら

↓出ました、出ました。やっとです。
(バージョンが古いだけでなく、不一致でも、出るエラー?かも・・・)



サーバは、TOMCATなので
http://localhost:8080/BOOKLOG/BookLogJSP.jsp
をURLに入れて
IEでも表示できました。やれやれ

表示も簡素だし、リンクも全然ないけど、まあ、それは次の課題(来週?)
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

※ブログ作成者から承認されるまでコメントは反映されません。

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最新の画像もっと見る

最近の「Java」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事