2013年10月18日金曜日

groovyとApache MetaModelでカラムの型変換を行う

groovyとApache MetaModelでカラムの型変換を行うには、以下のようにConverters.addTypeConverterメソッドを使用します。
@Grab(group='org.eobjects.metamodel', module='MetaModel-full', version='3.4.5')
import org.eobjects.metamodel.*
import org.eobjects.metamodel.convert.*

dc = DataContextFactory.createExcelDataContext(new File("products.xlsx"))
// テーブル(=シート)を指定
table = dc.getDefaultSchema().getTableByName("products")
colPrice = table.getColumnByName("price")
// 文字列から数値へのConverterを設定
Converters.addTypeConverter(dc, colPrice, new StringToIntegerConverter())

// 値段が2000円以上の製品を抽出
query = dc.query().from(table)
  .select("product_name", "price")
  .where(colPrice).gt(2000)
    .or(colPrice).eq(2000)
  .toQuery()
// Queryの表示
println query.toString()
// Queryの実行
ds = dc.executeQuery(query)
for(row in ds){
  // 製品名と価格を表示
  println row.getValue(0) + ":" + row.getValue(1)
}


動作環境
groovy 2.1.7, JDK7 update40

0 件のコメント:

コメントを投稿