在scala中访问postgresql(使用sbt)
来源:互联网 发布:激光脱毛仪 知乎 编辑:程序博客网 时间:2024/05/17 00:03
默认已经安装了scala和SBT,并且对sbt有基本了解,知道怎样用sbt建立一个工程。
添加依赖
要在scala中使用postgresql数据库,需要导入postgresql驱动相关的库文件,postgresql的库文件,可以去其官网上下载,一定要下载和你的scala、Jdk对应的版本。现在有两种途径可以在scala工程编译时添加这个postgresql库:
1. 自己下载这个依赖库,是一个jar文件,把这个文件放到sbt工程目录下的lib\下
2. 不用自己下载这个依赖库,在build.sbt中声明依赖这个文件,在编译的过程中sbt会自动下载这个库文件,并添加这个库。在sbt的帮助文件中告诉了如何添加这个依赖的语法
libraryDependencies += groupID % artifactID % revision % configuration
那么现在问题来了,我只知道我需要postgresql,哪里知道groupID、artifactID这些东东是什么,给大家一个汇合了许多库文件的网站, 在这个网站中搜索postgresql,在搜索结果中就给出了postgresql驱动库的groupID、artifactID这些信息
根据这些信息,就知道应该在build.sbt文件中这么写依赖项了
libraryDependencies += “org.postgresql” % “postgresql” % “9.4-1201-jdbc41” % “provided”
整个build.sbt就是
name := "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").newInstanceval 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)
- 在CDH5.4.5版本中使用Scala+sbt+Eclipse+Java遇到的问题总结
- 使用sbt创建scala项目
- 使用sbt构建scala应用
- 使用SBT构建Scala项目
- 使用SBT构建Scala项目
- Idea 使用SBT创建Scala项目中 No 'scala-library*.jar' in Scala compiler classpath的问题解决
- linux中安装Sbt、编译scala程序
- scala构建工具SBT的使用_Hello_World
- sbt中使用log4j
- 在Metasploit中使用PostgreSQL
- Scala基础教程--1 使用sbt创建scala项目
- 在SBT中引入JRebel
- 【postgresql】在postgresql中使用limit实现select top x
- NodeJS中访问PostgreSQL
- 在PostgreSQL中配置并使用vim
- idea 使用sbt构建工程时错误unresolved dependency: org.scala-sbt#sbt;0.13.8: not found
- windows下使用sbt搭建Scala开发环境
- 流程控制《3》while
- 嵌套《1》
- 嵌套《2》
- Android_常见控件之DatePicker详解
- android sdk content loader 一直显示0% 问题解决办法
- 在scala中访问postgresql(使用sbt)
- Mysql常用命令行
- 嵌套《3》
- Codeforces Round #285 (Div. 1)B. Misha and Permutations Summation(数学+数据结构打脸)
- TalkingData大规模机器学习的应用
- 跳转语句
- ios iphone6&plus 导航栏 变高
- ActiveMQ学习笔记(6)——JMS消息类型
- 八皇后问题