GAE/J 簡易 csv loader
どうしてもjavaでデータストアにcsv形式のデータを読み込みたい。pythonは嫌だ。そんな気持ちでちょっと作ってみました。
データクラスの作成
csvのデータを格納するJDOクラスを作成します。作り方は公式ドキュメントのこのあたり。javaとcsvのファイル名は同じになるようにしてください。MyData.javaとMyData.txtなど。
CSVの書き方
作成するデータが1つのクラスの場合、1行目にsetter関数名、2行目以降に値を書きます。
setName(), setString(), setInt(), ... myname, string, 3, ...
たとえばこの例のようにEmployeeが親でContactInfoが子の1対多の関係の場合、まず最初に親となるEmployeeをデータストアに作成します。子のContactInfoのcsvは
Employee.addContactInfo(),streetAddress(), ... 10, mail@address1, ... 10, mail@address2, ... 10, mail@address3, ...
これでkey=Employee(10)にContactInfoを追加できます。
setContactInfoSets(List)とは別にaddContactInfo(ContactInfo)を作ることに注意してください。つまり引数は追加する子クラスである必要があります。同様に
Class1, Class2, Class3.setMethod(), Method1(), Method2(), ... 5, 12, 27, value1, value2, ...
はkey=Class1(5)/Class2(12)/Class3(27)のデータにvalue1,value2, …という値を持つオブジェクトをClass3.setMethod()を使って追加します。ここらへんはテストしていないのでどうなるかわかりません・・・。
ソースをダウンロード
csvの読み込みにopencsvを利用しています。
Class3.Method()