2

GroovyクラスでORMLiteを使用できるかどうか誰かが知っていますか?

ORMLiteがバイトコードで機能するJavaリフレクションを使用していることを考えると、それは修飾されたyesであると思います。

この方法でORMLiteを使用した経験のある人はいますか?もしあれば、何か提案やコメントはありますか?

GroovyからJavaクラスにアクセスできることは理解しているので、これはフォールバックです。しかし、一体、私は興味があります。

4

2 に答える 2

3

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()
    }
}
于 2014-09-08T16:19:12.533 に答える
1

私は最新バージョン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

この助けを願っています。

于 2017-10-05T15:05:34.393 に答える