javaのormのebeanをただのjavaプロジェクトで使う時についてのメモ書き。
環境。osはwindows7。dbはmysql

ebeanのページ からsourceforgeページへとんで、ebean-2.7.7.zipをダウンロード。とりあえず、その中のebean-2.7.7.jar、javax.persistence.jar、jta.jarを使う。

パスが通っている場所に下のebean,propertiesを配置。javaプロジェクトならプロジェクトの直下でおっけ。

ebean.ddl.generate=true
ebean.ddl.run=false

ebean.datasource.factory=default
#datasource.default=ordh2
datasource.default=mysql

#datasource.ordh2.username=sa
#datasource.ordh2.password=
#datasource.ordh2.databaseUrl=jdbc:h2:tcp://localhost:9092/test
#datasource.ordh2.databaseDriver=org.h2.Driver

datasource.mysql.username=hogeuser
datasource.mysql.password=hogepass
datasource.mysql.databaseUrl=jdbc:mysql://localhost:3306/hogedb
datasource.mysql.databaseDriver=com.mysql.jdbc.Driver
#datasource.mysql.minConnections=1
#datasource.mysql.maxConnections=25
#datasource.mysql.heartbeatsql=select 1
#datasource.mysql.isolationlevel=read_committed

ちなみに、ebean.ddl.runをtrueにしておくと、いきなりmodelsクラスを読み込んで対応しているテーブルをdropしてcreateしようとする。けど、createするところでava.lang.ExceptionInInitializerErrorが発生してテーブルが作れない。下はほかの例外ログも・・・鬱陶しい。とりあえずDDLでテーブル用意しといてこの機能は切っておく。
Caused by: javax.persistence.PersistenceException: Error・・・
error[Incorrect table definition; there can be only one auto column and it must be defined as a key]

これで準備完了。うまく動いているかどうかは下のソース。
String sql = "select count(*) as count from hoge_table";
SqlRow row = Ebean.createSqlQuery(sql).findUnique();

Integer i = row.getInteger("count");

System.out.println("count : " + i);

あと、update系のクエリについて。frameworkのplayの場合「EbeanServer server = Ebean.getServer("default");」でEbeanServerを取得してうんちゃらかんちゃらなんだけど、普通のjavaプロジェクトの場合、「java.lang.RuntimeException: DataSource user is null?」が発生してできなかった。たぶんできるとは思うんだけど、とりあえず下の方法で回避。

SqlUpdate create = Ebean.createSqlUpdate("update *** set hoge = :hoge where …")
.setParameter("hoge","hogeee")
.setParameter("hoge2","hogeee2");
Ebean.execute(create);


つかこっちが正攻法?ormはコネクションの管理の部分とかを自動でやってくれるんだけど、そのあたりが任せきりで隠蔽されていて不安になる。

TorroisGitについて。windowsのgitクライアント。msysgitが必要。
環境。OSはwindows7.64bit

■インストール~
ここ からDownload TortoiseGit 1.8.5.0 - 64-bitをダウンロード。
あと日本語化ラングパッケージ もダウンロード。TortoiseGit-LanguagePack-1.8.5.0-64bit-ja.msi。

まずはTortoiseGitをインストール。インストールしたら適当なディレクトリ作成。reposとか。そこで右クリックしたら、TortoiseGitのメニューも追加されているはず。ただしまだ英語。それにこの段階だとmsysGitがないとか怒られる。

なのでここからmsysgit をだうんろーど。Git-1.8.3-preview20130601.exe。msysgitのインストールは下の二つを参考にした。windowsのDOS窓で使えるようにするとか、改行コードは自動で変換するようにするとかがある。
TortoiseGitを日本語化するまでの手順
TortoiseGitのインストールと設定 Windowsのターミナルが嫌いな人に

これでディレクトリで右クリックしてコンテキストメニューからgit関連のメニューが選択できるようになるはず。
日本語化はsettingから言語で日本語を選択すればおけ

ブランチを作成してブランチを切り替えたい場合はブランチを切り替えを選択。そのままだね。ちなみにtortoisegit上で新しいブランチを切ってコミットしてそのままプッシュできる。githubサバ上でそのブランチが作られている。

■ユーザ名/パスワードの認証
プルやプッシュするときに毎回求められる認証を省略したい場合、win7では、c:\ユーザー\hogeuser\ディレクトリ下に_netrcファイルを作成し、_netrcファイルに下を書く(hogeuserは仮名)

machine github.com
login hogegituser
password hogegitpassword

■sshでgithubに接続
githubへの接続はhttpsだけでなく、sshでもできる。sshでの接続には、秘密鍵と公開鍵を作って公開鍵をgithubに登録、なんて作業が必要になってくる。
SSHかHTTPSどちらかを利用してgithubのリポジトリに接続する

■git入門者、初心者、中級者のおすすめほん紹介

入門git/オーム社
¥2,520
Amazon.co.jp

Gitポケットリファレンス/技術評論社
¥2,604
Amazon.co.jp


■エディタ
tortoisegitで使うエディタは、設定⇒代替エディタで指定できる。

■新規ファイル、ディレクトリをgitに追加したり無視したり
あるファイルを新規作成してgitにコミットしたり、gitの管理外にしたいから無視したい場合、ファイルを右クリックしTortoiseGit⇒追加、もしくは無視リストに追加を選択する。無視リストに追加したら、.gitignoreファイルが作成or更新される。まぁ追加の場合はコミット時にその情報を出してくれるから、わざわざそれをする必要もないけどね。

■ローカルリポジトリのブランチ同士のマージ
例えば、hogedevelopブランチはmasterブランチへマージする場合。
ブランチをmasterに切り替え。マージを選択し、Fromからhogedevelopを選択する。ただ、これだとブランチの全ディレクトリがマージされてしまう。特定のディレクトリだけマージしたい場合は・・・

■マージ、githubのリモートリポジトリのブランチにプッシュしようとして競合した場合
変更履歴の統合、変更履歴のマージ
競合を解決する

■前のバージョンに戻す。
あるファイルを編集したり、コミットしたけど、以前のバージョンに戻したい場合、リポジトリブラウザからファイルを選択して何かをやればできる。リポジトリブラウザでリビジョンのブランチのブランを選択し、ログメッセージwindowが開くので(ログを表示の選択と同じ)、そこでブランチをクリックすればリファレンスをぶらうズwindowが起動し、そこでブランチを切り替えることができる。たぶん、refs/heads/がローカルで、refs/remoto/origin/がリモート。

javaのテストについてのメモ書き。

■testing framewrok
・junit
・testNG

■xuit
xunitはコンピュータプログラムの単体テスト(ユニットテスト)を行うためのテ スティングフレームワークの総称。
wiki参照
⇒javaだとjunit,TestNGがそう。

■frameworkで使えるテストの種類
・ユニット(単体)テスト。
・ブラックボックステスト、ホワイトボックス?テスト
・境界値テスト
・モジュールテスト
こんなものか・・・

■eclipseでjunit
便利なショートカット
・Ctrl+9
⇒対象クラスのクラス宣言にカーソルをあてている場合、そのテストクラスを自動生成してくれる。テストクラスを開いてる場合は対象クラスを開く。
・Ctrl+F11
・testって書いて、Ctrl+Space


■用語
・immutable:不変の
・mutable:変わりやすい
・SUT(System under test):テスト対象
・actual:実測値
・expected:期待値。expeted value

■テストサイクル
・setup(事前準備)
・実行
・verify(検証)
・後処理



■めも
・ドキュメントが面倒なら、テスト仕様書に設計書を封じ込めろ(それが許される環境ならば)
・テスト項目にあいまいな表現は書くな。

ディレクトリを選択してShift+右クリックして、「コマンドウインドウをここで開く」を選択すると、そのディレクトリ上でコマンドプロンプロが立ち上がります。ただの右クリックだと、「コマンド・・・」の選択肢は出てこないので注意。

windowsタスクマネージャで掴んでいるタスクを特定し、そいつを削除する。

参考
Windows 7 他のプロセスが使用中のファイルを削除する方法