如何为 scala 2.10.1 构建 sorm

Posted

技术标签:

【中文标题】如何为 scala 2.10.1 构建 sorm【英文标题】:How to build sorm for scala 2.10.1 【发布时间】:2013-08-26 20:37:56 【问题描述】:

知道如何为 scala 2.10.1 构建 SORM 我正在尝试生成一个可以在我的 eclipse 项目中使用的 jar 文件。

这是我的代码

import sorm._
case class Coffee(name: String, supplier: Supplier, price: Double, sales: Int, total: Int)
case class Supplier(name: String, street: String, city: String, state: String, zip: String)

object Db extends Instance(
 entities = Set(Entity[Coffee](),Entity[Supplier])),url="jdbc:mysql://localhost:3306/db123")



object sormtest 

 import Db._
 def main(args: Array[String]): Unit = 
 val supplier1 = Supplier("Acme, Inc.", "99 Market Street", "Groundsville", "CA", "95199")
val supplier2 = Supplier("Superior Coffee", "1 Party Place", "Mendocino", "CA", "95460")
val supplier3 = Supplier("The High Ground", "100 Coffee Lane", "Meadows", "CA", "93966")


 Db.save(supplier2)  `

我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/mchange/v2/c3p0/impl/AbstractPoolBackedDataSource
    at sorm.core.Connector.<init>(Connector.scala:16)
    at sorm.Instance$Initialization.<init>(Instance.scala:209)
    at sorm.Instance.<init>(Instance.scala:29)
    at Db$.<init>(sormtest.scala:8)
    at Db$.<clinit>(sormtest.scala)
    at sormtest$.main(sormtest.scala:27)
    at sormtest.main(sormtest.scala)
Caused by: java.lang.ClassNotFoundException: com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 7 more

我已经从http://mvnrepository.com/artifact/org.sorm-framework/sorm/0.3.8这里下载了jar文件

编辑: Maven 存储库列出了许多要包含的 jar 文件。一旦我添加了它们就解决了我的问题。

【问题讨论】:

您正在处理的问题与 SORM 和 Scala 无关。从错误消息中可以明显看出,您在类路径上缺少 SORM 所依赖的其他 jar。它们列在 Gourlaysama 提供的链接上。不过,我强烈建议您只使用 Maven 或 SBT。 【参考方案1】:

无需自己构建,SORM 0.3.8 为available on Maven Central,支持Scala 2.10.x。

SBT:

libraryDependencies += "org.sorm-framework" % "sorm" % "0.3.8"

马文:

<dependency>
    <groupId>org.sorm-framework</groupId>
    <artifactId>sorm</artifactId>
    <version>0.3.8</version>
</dependency>

如果你真的想要 JAR,you can download it from there too。

【讨论】:

以上是关于如何为 scala 2.10.1 构建 sorm的主要内容,如果未能解决你的问题,请参考以下文章

如何为每个用户或系统范围配置 Ivy 缓存目录?

如何为现有 DataFrame 创建新行?在 PySpark 或 Scala 中

Scala Spark,如何为列添加值

如何为scala中的空数据框现有列添加赋值?

如何为 scala Iterable、spark 数据集制作编码器

如果使用 sorm,如何处理架构更改