注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿弥陀佛

街树飘影未见尘 潭月潜水了无声 般若观照心空静...

 
 
 

日志

 
 
关于我

一直从事气象预报、服务建模实践应用。 注重气象物理场、实况场、地理信息、本体知识库、分布式气象内容管理系统建立。 对Barnes客观分析, 小波,计算神经网络、信任传播、贝叶斯推理、专家系统、网络本体语言有一定体会。 一直使用Java、Delphi、Prolog、SQL编程。

网易考拉推荐

Anorm standalone  

2013-12-05 22:27:26|  分类: Scala |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
参考   
trait db {
      // Quick way to load the driver
      Class.forName("com.mysql.jdbc.Driver").newInstance
     
      def getConnectionByUrl(url: String) = {
        DriverManager.getConnection(url)
      }
      
      def getConnection(name: String) = {
        getConnectionByUrl("jdbc:mysql://localhost:3306/db_name?user=username&password=pass")
      }
     
      /*
      def withConnection[A](block: Connection => A): A = {
        withConnection("default")
      } */
     
      def withConnection[A](name: String)(block: Connection => A): A = {
        val connection = getConnection(name)
        try {
          block(connection)
        } finally {
          connection.close()
        }
      }
     
      def withTransaction[A](name: String)(block: Connection => A): A = {
        withConnection(name) { connection =>
          try {
            connection.setAutoCommit(false)
            val r = block(connection)
            connection.commit()
            r
          } catch {
            case e => connection.rollback(); throw e
          }
        }
      }
    }
    object db extends db {
      def withConnection[A](block: Connection => A): A = {
        this.withConnection("default")(block)
      }
     
      def withTransaction[A](block: Connection => A): A = {
        this.withTransaction("default")(block)
      }
    }

Now you can create a very basic model such as:
view sourceprint?
    case class Obj (
                        id: Pk[Long],
                        name: String
                        ) {}
     
    object Obj {
     
      val simple = {
        get[Pk[Long]]("objs.id") ~
        get[String]("objs.name")  map {
          case id ~ name  => Obj(
            id, name
          )
        }
      }
     
      def findById(id: Long) = {
        db.withConnection {
          implicit connection =>
            SQL("select * from objs where id = {id};").on(
              'id -> id
            ).as(Obj.simple.singleOpt)
        }
      }
    }
  评论这张
 
阅读(379)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017