默认已经安装了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").newInstance
val conn = DriverManager.getConnection(conn_str, "用户名称", "密码")
val conn = DriverManager.getConnection(conn_str)
try {// Configure to be Read Onlyval statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)// Execute Queryval rs = statement.executeQuery("SELECT quote FROM quotes LIMIT 5")// Iterate Over ResultSetwhile (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 inserttry {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)相关推荐

  1. android手机 scala环境,在Android中使用Scala中的Java常量

    我在Android上的Scala中开发了一个奇怪的问题.我正在使用sbt android插件,现在我正在尝试让内容提供商工作,但是...在Android中使用Scala中的Java常量 刚刚用Scal ...

  2. idea 编写scala_在Scala中编写Angular服务

    idea 编写scala Those following my blog posts know that I like to take Scala everywhere. This time, let ...

  3. Akka 系列(五):Java 和 Scala 中的 Future

    随着CPU的核数的增加,异步编程模型在并发领域中的得到了越来越多的应用,由于Scala是一门函数式语言,天然的支持异步编程模型,今天主要来看一下Java和Scala中的Futrue,带你走入异步编程的 ...

  4. Scala中Manifest、ClassTag、TypeTag的学习

    2019独角兽企业重金招聘Python工程师标准>>> Manifest介绍 Manifest是scala2.8引入的一个特质,用于编译器在运行时也能获取泛型类型的信息. 在JVM上 ...

  5. Spring Boot中使用PostgreSQL数据库

    在如今的关系型数据库中,有两个开源产品是你必须知道的.其中一个是MySQL,相信关注我的小伙伴们一定都不陌生,因为之前的Spring Boot关于关系型数据库的所有例子都是对MySQL来介绍的.而今天 ...

  6. Serverless 解惑——函数计算如何访问 PostgreSQL 数据库

    函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务 ...

  7. 任意编程语言访问PostgreSQL:C++接口

    今天将介绍如何使用C++访问PostgreSQL. 官方PostgreSQL客户端的C++接口API称为libpqxx,但没有与PostgreSQL源码进行绑定,用户可以从产品分发库或单独下载进行安装 ...

  8. Scala中的类和对象

    类的定义 使用class定义 类的字段 在类中使用var,val定义字段 类的方法 scala中,使用var定义字段默认提供setter和getter方法 对应名称为 value_= 和value 1 ...

  9. scala中akka actor例子

    抛开复杂的业务逻辑,让我们从一个超级简单的例子学习Akka Actor的用法. Scala cookbook的作者Alvin Alexander在他的网站上提供了两个例子. 本文翻译.整理于他的两篇文 ...

最新文章

  1. Python3 字符串format使用代码示例
  2. 《剑指offer》-- 从上往下打印二叉树、二叉搜素树的后序遍历、二叉树中和为某一值的路径、二叉树与双向链表
  3. SVC调参总结+调参实例
  4. SimpleAdapter类使用方法
  5. java管理员登录_idea实现管理员登录javaweb
  6. java输出变量_Java笔记1: 输入输出与变量常量
  7. C++知识整理(在此感谢大牛的整理)
  8. 5个月内要完成的东西
  9. java类初始化_Java的类/实例初始化过程
  10. 上海往事之参加安永公司项目面试
  11. golang下载网站的实例的办法
  12. 3809. 修改数组——AcWing题库
  13. 【Python】statsmodels.formula.api模块中ols参数的解释
  14. win7锁定桌面计算机图标,Win7锁定桌面图标的详细步骤(图文)
  15. 【极学】托马斯的《生命不可承受之轻》
  16. 用rtl8139网卡制作的bios编程器(不用并口)
  17. oracle用户常见job权限不足,JOB调用的权限问题
  18. eos 区块链 java 开发_EOS 交易验证的主要思路 - EOS 区块链开发实战
  19. 慢慢欣赏linux CPU占用率和负载
  20. 计算机化工应用答案,计算机化工应用习题与解答.pdf

热门文章

  1. Spanner——Google的全球化分布式数据库
  2. 这些年,我收集的JavaScript代码(二)
  3. Android预优化那些事
  4. org.hibernate.HibernateException: connnection proxy not usable after transaction
  5. 在django restful framework中设置django model的property
  6. Jackson注解学习参考
  7. WKWebView不显示提示框(Swift)
  8. docker操作运行一步一步来
  9. 10个步骤:如何成为iPhone游戏开发者
  10. mysql中的复制(配置主从数据库)