当前位置:Gxlcms > 数据库问题 > 在scala中访问postgresql(使用sbt)

在scala中访问postgresql(使用sbt)

时间:2021-07-01 10:21:17 帮助过:155人阅读

:= "Task3" version := "1.0" scalaVersion := "2.10.5" libraryDependencies += "org.postgresql" % "postgresql" % "9.4-1201-jdbc41" % "provided"

这么写了之后,编译应该不会出问题了,使用sbt package可以讲工程打包成jar。但是仍然不能运行,运行会出现class not found之类的错误。因为还需要把postgresql依赖库文件的位置添加到Java的classpath中,这样运行就不会出问题了。

使用postgresql

基本查询

val conn_str = "jdbc:postgresql://IP地址:端口号/数据库名称"
classOf[com.mysql.jdbc.Driver]  
// 使用上一句可能会有warning,因为这是一个表达式,可以换成下面的
// Class.forName("org.postgresql.Driver").newInstance
val conn = DriverManager.getConnection(conn_str, "用户名称", "密码")
val conn = DriverManager.getConnection(conn_str)
try {
      // Configure to be Read Only
      val statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)
     // Execute Query
      val rs = statement.executeQuery("SELECT quote FROM quotes LIMIT 5")
     // Iterate Over ResultSet
     while (rs.next) {
       println(rs.getString("quote"))
     }
  }
  finally {
      conn.close  
  }

表操作(Insert,update,delete)

  val dbc = "jdbc:mysql://localhost:3306/DBNAME?user=DBUSER&password=DBPWD"
  classOf[com.mysql.jdbc.Driver]
  // 这是另外一种写法,把用户名和密码都写在一起
  val conn = DriverManager.getConnection(dbc)
  val statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE)

  // do database insert
  try {
    val prep = conn.prepareStatement("INSERT INTO quotes (quote, author) VALUES (?, ?) ")
    prep.setString(1, "Nothing great was ever achieved without enthusiasm.")
    prep.setString(2, "Ralph Waldo Emerson")
    prep.executeUpdate
  }
  finally {
    conn.close
  }

在scala中访问postgresql(使用sbt)

标签:scala   postgresql   sbt   

人气教程排行