続き
メモ
- Spring Tool SuitsにDB Viewerを入れる
-
パースペティクブ開こうとしたら入っていなかったです。
Eclipse MarketplaceからDLできました。
参考:Small Java World Eclipseの「DBViewer」プラグインを利用して「Java DB」の環境を作成し、SQLを発行してみる - Mac OSXでPostgreSQL立ち上げるのにハマりググる。
-
クライアントはすぐ見つかるが、サーバ側がなかなか起動できなかった。
失敗した方法:
PostgreSQL 9.0.4文書 17.3. データベースサーバの起動
$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &
Mac OSXでbrewでpostgresqlをインストすると/usr/local/pgsql/dataにconfファイルがないみたいでした。
解決した方法:
Qiita Homebrewを使ったPostgreSQLのインストール(Mac OS Lion)
postgres -D /usr/local/var/postgres - JDBCのダウンロード
-
まぁ公式から。
Java SDKのバージョンにより、使用するJDBC Driverのバージョンが異なります。
- 1.6 → JDBC4
- 1.7 → JDBC4.1
- 1.6 → JDBC4.2
- JDBC API
-
(Class)java.sql.Drivermanager
: static Connection : getConnection(String url)
(interface)java.sql.Connetion
: static PreparedStatement prepareStatement(String sql)
: void close()
(interface)java.sql.PreparedStatement
: void close()
: ResultSet executeQuery()
: int executeUpdate()
: boolean execute()
: void setString(int parameterIndex, String x)
: void setInt(int parameterIndex, int x)
: void setDouble(int parameterIndex, double x)
: void setDate(int parameterIndex, Date x) - executeQuery(), execute(), executeUpdate()
-
- executeQuery() = SQLを実行してResultset型の戻り値を返す
- execute() = SQLを実行し、完了したかどうかのboolean値を返す
- executeUpdate() = SQLを実行し、影響があった行数を返す
- INパラメータ
-
PreparedStatmentに埋め込む"?"のこと。
インデックスは1始まり。まぁSQL絡みだから間違えないかな。 - ResultSet
-
(interface)java.sql.ResultSet
: void close()
: boolean next()
: String getString(String columnName)
: int getInt(String columnName)
: double getDouble(String columnName)
: java.sql.Date getDate(string columnName)
- JDBCの書き方
-
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection
("jdbc:postgresql://localhost:5432/test?user=test&password=test"); - PostgreSQLのserialがずれる
-
独自idカラムをserialかつPrimary Keyにしていたら、Webアプリでレコード追加した際に
idカラムが重複してエラーを起こしていた。シーケンスが、すでにテーブルにある値とずれることがあるらしい。
参考:ぺけみさお PostgreSQLでINSERT時に自動採番の主キーが重複してエラーが出る場合の対処法 - JSP / Javaコードに変換されたソースのありか
-
Eclipseで確認しているのは、
[project root] / work / org.apache.jsp / [jsp file name]_jsp.java - jspファイルへのリクエストへの度に_jspServiceメソッドを実行
-
javax.servlet.jsp.JspWriter型のout変数にjspファイルの内容を書き込む
結果として、整形されたHTMLコードがレスポンスで渡される。 - JSP / ディレクティブ
-
- page:ページ設定
- taglib:タグライブラリ
- include:外部ファイルの読み込み
- JSP / pageディレクティブ
-
<%@ attribute1="value1" attribute2="value2" ... %>
import属性は複数使用可能で、その他は一度しか使用できない。
pageディレクティブの設定は、そのページのみで有効
- language:javaを指定
- contentType:MIMEタイプと文字エンコード("text/html; charset=UTF-8")
- pageEncoding:JSPファイルをサーブレットクラスに変換するときの文字コード("UTF-8")
-
import:一度の指定でカンマ区切りで複数のクラスをインポート可能
e.g. import="java.util.*, java.sql.*" - extends:JSPから変換する際のサーブレットクラスのスーパークラス
- info:JSPページの情報。javax.servlet.ServletインターフェースのgetServletInfo()で取得することができる
- session:セッション有効化フラグで、デフォルトはtrue(有効)です
- スクリプティング要素
-
- スクリプトレット:Javaプログラムブロック <% xxx; %>
- 式:値を出力する式 <%= xxx %>
- 宣言:変数宣言とメソッド定義のブロック <%! xxx %>
- JSPコメント:HTMLコメントと違い、レスポンスで返されるHTMLには含まれない <%-- xxx --%>
式は変数やメソッドを1回呼び出すだけだからだろうか。 - 暗黙オブジェクト
-
オブジェクトを明示的に生成しなくても使用できるオブジェクト
- out
- request
- response
- session
- application
- config
- pageContext
- page
- exception
- JSP / 他のファイルの入れ込み
-
-
includeディレクティブ:<%@ include file="xxxx" %>
include元と先どちらも合わせてコンパイルするので、元で先のJSPタグを使用できる -
includeアクション:<jsp include page="xxxx" />
include元を先にコンパイルし、その後にinclude先のファイルの呼び出す(実行する)
-
includeディレクティブ:<%@ include file="xxxx" %>
- JSP / forwardアクションタグ
-
<jsp:forward page="xxx" />
前項includeディレクティブとアクションは、あくまで呼び出し元がHTTPレスポンスを返す。
一方、forwardアクションは、呼び出し先がHTTPレスポンスを返す。
0 件のコメント:
コメントを投稿