GroovyクラスでORMLiteを使用できるかどうか誰かが知っていますか?
ORMLiteがバイトコードで機能するJavaリフレクションを使用していることを考えると、それは修飾されたyesであると思います。
この方法でORMLiteを使用した経験のある人はいますか?もしあれば、何か提案やコメントはありますか?
GroovyからJavaクラスにアクセスできることは理解しているので、これはフォールバックです。しかし、一体、私は興味があります。
ORMLiteを使い始めたばかりですが、少なくともバージョン4.48はGroovyで動作します。
@DatabaseTable(tableName = "people")
class Person {
@DatabaseField(id = true)
int id
@DatabaseField(columnName = "first_name")
String firstName
@DatabaseField(columnName = "last_name")
String lastName
}
class Tester {
def static main(String[] args) {
def url = "jdbc:..." // elided
def connSource = new JdbcConnectionSource(url)
Dao<Person, Integer> personDao = DaoManager.createDao(connSource, Person.class)
def person = personDao.queryForId(1)
println("${person.lastName}, ${person.firstName}") // prints 'Smith, Joe'
connSource.close()
}
}
私は最新バージョン5.0(書き込み時)を試しましたが、Groovy(少なくとも2.4.4)で動作します。これは完全なMySQLに似た-少し短い-例(ファイル名Tester.groovy)です。
@GrabConfig(systemClassLoader=true)
@Grab(group='mysql', module='mysql-connector-java', version='5.1.6')
import com.j256.ormlite.jdbc.JdbcConnectionSource
import com.j256.ormlite.dao.Dao
import com.j256.ormlite.dao.DaoManager
import com.j256.ormlite.field.DatabaseField
import com.j256.ormlite.table.DatabaseTable
class Tester {
static main(args) {
def url = "jdbc:mysql://localhost/sample?user=root&password="
def connSource = new JdbcConnectionSource(url)
Dao<Person, Integer> personDao = DaoManager.createDao(connSource, Person)
personDao.queryForAll().each { person ->
println "${person.name}, ${person.age}, ${person.comment}"
}
connSource.close()
}
}
@DatabaseTable(tableName = "person")
class Person {
@DatabaseField(id = true)
int id
@DatabaseField(columnName = "age")
int age
@DatabaseField(columnName = "name")
String name
@DatabaseField(columnName = "comment")
String comment
}
コマンドラインランナー:
groovy -cp "ormlite-jdbc-5.0.jar;ormlite-core-5.0.jar" Tester.groovy
この助けを願っています。