有谁知道是否可以将 ORMLite 与 Groovy 类一起使用?
鉴于 ORMLite 使用适用于字节码的 Java 反射,我想这将是合格的。
任何人都以这种方式使用 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
希望这有帮助。