Scala与SQL交互:从JDBC到Slick的实践指南
1. Pimp My Library模式
当我们在 Connection 实例上调用 withQuery 方法时,Scala编译器会先检查 Connection 类定义中是否有 withQuery 方法。若没有,它会查找能将 Connection 实例转换为定义了 withQuery 方法的类的隐式方法。例如, pimpConnection 方法可将 Connection 转换为 RichConnection ,而 RichConnection 定义了 withQuery 方法,编译器会自动使用该方法进行转换。
使用Pimp My Library模式为现有类添加方法的步骤如下:
1. 编写一个包装类来丰富目标类,如 class RichConnection(val underlying:Connection) ,并添加你希望原类拥有的所有方法。
2. 在一个名为 Implicits 的对象中编写从原类到增强类的转换方法,并使用 implicit 关键字让Scala自动进行转换,如 implicit def pimpConnection(conn:Connection):RichConnection
超级会员免费看
订阅专栏 解锁全文
980

被折叠的 条评论
为什么被折叠?



