PlayScalaでMySQLデータベースアクセス
PlayScalaでMySQLデータベースに接続する所を書いていきます。
データベースにアクセスするには、設定ファイル build.sbtと conf/application.conf に追加をします。
プログラムの中では、コネクションを取得して、ステートメントを生成して、クエリを実行します。
プログラムの中では、コネクションを取得して、ステートメントを生成して、クエリを実行します。
(1)build.sbtにJDBCを追加します
DBプラグインを依存ライブラリに、jdbcを追加します
DBプラグインを依存ライブラリに、jdbcを追加します
libraryDependencies ++= Seq(
jdbc
, anome
, cache
)
jdbc
, anome
, cache
)
(2)conf/application.conf に接続情報を追加します
db.default.driver=com.mysql.jdbc.Driver // SQL接続ドライバー
db.default.url="jdbc:mysql://localhost/"DB名"?zeroDateTimeBehavior=convertToNull&reconnect=true&characterEncoding=utf8" // DB接続URL
db.default.user="DBユーザー名"
db.default.password="DBパスワード"
(3)プログラム内でのインポート
import play.api.db._
import play.api.db._
(4)プログラム内での処理
プログラム内では、コネクションの取得、ステートメントの生成、SELECTするクエリを実行、
そして、取得したデータを1つずつ見ていく処理をします。
最後に、ステートメントとコネクションをクローズします。
プログラム内では、コネクションの取得、ステートメントの生成、SELECTするクエリを実行、
そして、取得したデータを1つずつ見ていく処理をします。
最後に、ステートメントとコネクションをクローズします。
var conn = DB.getConnection() // JDBCコネクションの取得
var sSQL = "SELECT * FROM m_customer" // SELECTするSQL文
try {
val stmt = conn.createStatemtnt() // ステートメントの生成
var rs = stmt.executeQuery(sSQL) // クエリのの実行して、レコードセットにセット
// レコードセットをwhileループで回します
while(rs.next()) {
var lId = rs.getLong("ID")
var sNo = rs.getString("NO")
var sName = rs.getString("名前")
var sSQL = "SELECT * FROM m_customer" // SELECTするSQL文
try {
val stmt = conn.createStatemtnt() // ステートメントの生成
var rs = stmt.executeQuery(sSQL) // クエリのの実行して、レコードセットにセット
// レコードセットをwhileループで回します
while(rs.next()) {
var lId = rs.getLong("ID")
var sNo = rs.getString("NO")
var sName = rs.getString("名前")
// 受け取ったデータの処理を書きます
printf("ID:%d, NO:%s, 名前:%s \r\n", lId, sNo, sName)
}
stmt.close() // ステートメントをクローズします
} finnlay {
conn.close() // コネクションをクローズします
}
printf("ID:%d, NO:%s, 名前:%s \r\n", lId, sNo, sName)
}
stmt.close() // ステートメントをクローズします
} finnlay {
conn.close() // コネクションをクローズします
}