ページビューの合計

イエスから目を離さないでいなさい。(へブル 12:2)

2019-02-17

JNDIでDBアクセス実験

最初Eclipse4.6で実行できた。これは
Tomcat9、インストール済JRE java\8、 コンパイラ 1.8
で実行した。
ではEclipse4.2ではどうか実験した
①Tomcat7、インストール済JRE java\7、 コンパイラ 1.7
で実行。 動作した。ありがたい。
②Tomcat6、インストール済JRE java\6、 コンパイラ 1.6
で実行。 動作した。
残りはWindowsXPで動作確認

JSTL (Java Server Pages Tag Library)

JSTLは、一般によく利用されるカスタムタグをまとめ、
Apache Taglibs Project (旧Jakarta Taglibs Project)が
配布しているもの。

ライブラリの配置
JSTLのサイトから必要なバージョンのstandard.jar, jstl.jarを取得する。
古いバージョンはzipでまとめて配布されている。
プロジェクトのWEB-INF/lib以下にそれらを配置する。
JSP内での利用宣言
JSP内で以下を記述し、プレフィックスcをつけてタグライブラリを
利用する旨を宣言する。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
コード中での記述
taglibディレクティブで宣言した接頭辞とタグの名前をコロンで
つないで記述する。

ifの例
<c:if test="真偽式">
  真偽式が真の時に表示するコード
</c:if>

以下より引用
https://qiita.com/sculptcat/items/53d1a3a2d3b973354085

EclipseでJNDIを使ってDBをアクセス

やっと動的WebアプリでJNDIを使ってDBをアクセスできた。
道のりは長かった。
Apache Tomcat 8.0.53 / JNDI Datasource HOW-TO を参考にした。
(https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Example)
サーバの contex.xml に JNDI DataSource の設定をした。
jdbc/testDB という名のリソースを定義。
<Resource name="jdbc/testDB" auth="Container" type="javax.sql.DataSource"
      ..... url="jdbc:mysql://localhost:3306/ichojuku"/>
ichojukuはDB名である。
Webアプリ TestJ のweb.xml に resource-ref タグを入れ、
このリソースを指定した。
JSPではsql:queryタグを使った。
使用例
①ボディ部を利用する。
<sql:query>タグのボディ部にSELECT文を指定することでSQLを実行することができる。
以下は(SELECT * FROM user)を実行し、結果をqueryに格納する。

<sql:query var="query" dataSource="${db}">
 SELECT * FROM user
</sql:query>

②sql属性を指定する。
<sql:query>タグのsql属性にsqlクエリを指定することで、SQLを実行することができる。
また、<sql;param>タグでSQLにパラメータを渡すことができる。
以下は(SELECT * FROM user where id ='0001')を実行し、結果をqueryに格納する。

<c:set var="s" value="SELECT * FROM user where id=?"/>
<sql:query var="query" dataSource="${db}" sql="${s}">
 <sql:param value="0001"/>
</sql:query>

なお、JSPには c:set, c:forEach などのタグが使われていた。

2019-02-13

お味噌汁

N氏から「長生きみそ汁」を勧められた。
順天堂大学小林先生おすすめのみそ汁
赤味噌、白味噌、すりおろし玉ねぎ、酢
で作る。Nさんから製氷器もいただいた。
家に帰ると、妻は否定的
でも翌日作った。妻に飲ませた。
そうしたら妻の態度が一変、
とてもよいと言うではないか。驚く
昨日は医者に行き、薬局でまってるとき、
味噌汁の本があったので見てみると
そこにこの味噌汁が紹介されていて驚く


2019-02-09

CommonDBCPとTomcatJDBCPool

DBCPという名前を初めて聞いた。
DB connection pool である。

ネットにある説明を引用
コネクションプーリングとは、データベースへの接続を
幾つか持続しておき、使い回すことを意味する。
一般的に、データベースアプリケーションでは、
ユーザーがWebページにアクセスして何か処理をするたびに、
「データベースに接続」→「データベース処理」→「データベースから切断」
という流れになるが、この「データベースに接続」と「データベースから切断」
という個所は比較的時間を要する。このため効率が悪いのだ。
そこでWebページの処理が終わった時にデータベースから切断する
のではなくそのまま開いた状態にしておき、
次のクライアントからのアクセスで再利用すればよい。
「接続と切断がむやみに繰り返されることを防ぎ、
パフォーマンス向上させるのがコネクションプーリング」だ。

Tomcatには「Commons DBCP」以外にもDBコネクション・プールの実装が
存在する。それが、「Tomcat JDBC Connection Pool」です。

connection pool は前から知っていたが、APIとして使えるようになっていたとは

驚き、驚き

2019-02-07

久しぶりのJDBC

久しぶりにJDBCを使ってデータベースをアクセスする
プログラムを動かした。MySQLはXAMPP(ControlPanel3.2.2)
を使い、Eclipseでデータベースのデータを表示する
プログラムである。これに使うのが
mysql-connector-java-5.1.6-bin.jar
である。新しいのもあるようだが古いこれを使った。
まず動いたのでほっとした。

感謝、感謝

2019-02-06

Java-DBの準備

八王子いちょう塾 Java-DBの準備

5月の講義の準備に入る。
久しぶりのデータベースである。
忘れていたのを思い返し準備をしている。
mysql -uroot -p????  mysql
でエラー、パスワードを xampp/phpMyAdmin/config.inc.php
に書き加え、以下のコマンドを実行できた。

% mysql -uroot -p??? mysql

なお、MySQLサーバは 10.1.37-MariaDB である。
MariaDBで MySQLを扱っているらしい?