我正面临这个(至少对我而言)有趣的任务:从类似 POJO 的对象中获取 SQL 插入语句。让我说我不需要在我的 Scala 应用程序和数据库之间添加框架,因为我只需要将数据插入到单个数据库表中。
因此,假设我的类的属性与 DB 表的属性命名相同,我想使用 Scala 反射来从像这样的类中获取
class MyDataObj {
var a:Int = 345
var b:Boolean = false
var c:Double = 1243.98
var d:String = "A random string"
}
像这样的 SQL 插入语句
INSERT INTO table_a (a, b, c, d) values (345, false, 1243.98, 'A random String');
好吧,我们需要的是
1) 访问类属性
2) 访问属性类型
3) 访问对象实例的属性值
为了得到这样的东西
List( ("a","Int",345), ("b","Boolean",false), ("c","Double",1243.98), ... )
这将很容易转化为我们想要的。
到目前为止,我刚刚发现了如何访问属性名称
val columns = typeOf[MyDataObj].members.view.filter{_.isTerm}.
filter{!_.isMethod}.map{_.name}.toList
我怎样才能得到我需要的其余部分?
一如既往地感谢您对我的支持。