本节书摘来自华章社区《Clojure数据分析秘笈》一书中的第1章,第1.6节从JDBC数据库读取数据,作者(美)Eric Rochester,更多章节内容可以访问云栖社区“华章社区”公众号查看

1.6 从JDBC数据库读取数据
从关系型数据库中读入数据仅比从Excel中复杂一点,并且大多数外部编译主要涉及连接数据库。
幸好有人贡献了在JDBC之上的Clojure包,这个包使得使用数据库简单许多。本例将从SQLite数据库(http://www.sqlite.org/)中加载一个数据表。

1.6.1 准备工作
首先,在Leiningen project.clj文件中列明依赖。还需要引入数据库驱动库。在本例中,所使用的是org.xerial/sqlite-jdbc。


最后,得到数据库连接信息。我的数据存放在SQLite数据库文件data/small-sample.sqlite中。该文件可以从http://www.ericrochester.com/clj-data-analysis/data/small-sample.sqlite下载得到。

1.6.2 具体实现
加载数据的过程并不复杂,通过使用包装器程序会将这个过程变得更简单。

  1. 创建一个函数,参数为数据库连接映射和表名,返回值为从表中得到的数据集:

    1.6.3 实现原理
    load-table-data函数使用clojure.java.jdbc/with-connection建立了一个数据库连接。它创建了一个用以查询表中传入的所有域的SQL查询。然后,使用clojure.java.jdbc/with-query-results获取结果。每一行结果都是列名与值的映射序列。这个序列通过incanter.core/to-dataset装入数据集中。

    1.6.4 更多信息
    使用JDBC连接不同的数据库系统并不是一项困难的工作,但是取决于希望连接什么数据库。Oracle在http://docs.oracle.com/javase/tutorial/jdbc/basics/有关于使用JDBC的教程,clojure.java.jdbc库的文档(http://clojure.github.com/java.jdbc/)中有一些有用的信息。如果你想知道特定数据库系统的连接字符串是什么样子的,可以在网上找到列表。http://www.java2s.com/Tutorial/Java/0340__Database/AListofJDBCDriversconnectionstringdrivername.htm包含主要数据库系统的驱动。

《Clojure数据分析秘笈》——1.6节从JDBC数据库读取数据相关推荐

  1. 《Clojure数据分析秘笈》——2.6节调整词频值的度量

    本节书摘来自华章社区<Clojure数据分析秘笈>一书中的第5章,第2.6节调整词频值的度量,作者(美)Eric Rochester,更多章节内容可以访问云栖社区"华章社区&qu ...

  2. python pandas 读取数据库_数据分析-pandas从数据库读取数据

    数据分析-pandas从数据库读取数据 使用pandas读取数据到DataFrame,对于只是数据分析来说,重点是读取数据,读取数据过程越简单越好,并不需要写得很复杂显得自己很厉害的样子.最好就是代码 ...

  3. 《黑客秘笈——渗透测试实用指南》—第2章2.4节Web应用程序的扫描

    本节书摘来自异步社区<黑客秘笈--渗透测试实用指南>一书中的第2章2.4节Web应用程序的扫描,作者[美]Peter Kim(彼得 基姆),更多章节内容可以访问云栖社区"异步社区 ...

  4. 《黑客秘笈——渗透测试实用指南》—第2章2.3节 外部或内部的主动式信息收集...

    本节书摘来自异步社区<黑客秘笈--渗透测试实用指南>一书中的第2章2.3节 外部或内部的主动式信息收集,作者[美]Peter Kim(彼得 基姆),更多章节内容可以访问云栖社区" ...

  5. 《黑客秘笈——渗透测试实用指南(第2版)》—第2章2.7节总结

    本节书摘来自异步社区<黑客秘笈--渗透测试实用指南(第2版)>一书中的第2章2.7节总结,作者[美]Peter Kim(皮特 基姆),更多章节内容可以访问云栖社区"异步社区&qu ...

  6. 《黑客秘笈——渗透测试实用指南》—第1章1.1节搭建渗透测试主机

    本节书摘来自异步社区<黑客秘笈--渗透测试实用指南>一书中的第1章1.1节搭建渗透测试主机,作者[美]Peter Kim(彼得 基姆),更多章节内容可以访问云栖社区"异步社区&q ...

  7. 门店经营指标数据分析!(独家秘笈…

    http://www.itongji.cn/article/061JB12015.html 中国统计网国内大数据分析第一门户,数据分析从这里开始! [干货]门店经营指标数据分析!(独家秘笈) hong ...

  8. 《Unity着色器和屏幕特效开发秘笈》—— 3.4 创建BlinnPhong高光类型

    本节书摘来自华章出版社<Unity着色器和屏幕特效开发秘笈>一 书中的第3章,第3.4节,作者:(美)Kenny Lammers,更多章节内容可以访问云栖社区"华章计算机&quo ...

  9. 《T-SQL性能调优秘笈——基于SQL Server 2012 窗口函数》——1.7 小结

    本节书摘来自异步社区出版社<T-SQL性能调优秘笈--基于SQL Server 2012 窗口函数>一书中的第1章,第1.7节,作者: [美]Itzik Ben-Gan,更多章节内容可以访 ...

最新文章

  1. Mac 技术篇-多个python版本环境下Geany编辑器指定python版本运行
  2. string的常见用法详解
  3. 【一周入门MySQL—4】数据库进阶练习
  4. 单核工作法15:循序渐进
  5. python 保存网页到印象笔记_如何将网页内容保存到印象笔记?
  6. apache pdfbox_Apache PDFBox 2
  7. 使用CSS设置JavaFX饼图样式
  8. MFCC特征提取过程详解
  9. PSD模版如何变成网页模版 (转载)
  10. win10前置耳机插孔没声音_win10录屏没声音解决方法「系统天地」
  11. mapboxgl 互联网地图纠偏插件(二)
  12. 离线打包报错缺少io.dcloud.PandoraEntry
  13. vios接口虚拟服务器,虚拟VIOS服务器安装手册V1.0.doc
  14. [NLP自然语言处理]谷歌BERT模型深度解析
  15. 雅加达(印度尼西亚)出差小记
  16. 中国彩妆行业营销现状分析与投资机会研究报告2022版
  17. 谷歌云| 5 个 GKE 功能可帮助您优化集群
  18. Maven的本地初始配置三步走
  19. Android 如何进入Android工程模式
  20. 2023最新姆町个人自动发卡系统源码+全开源的/功能丰富UI美观

热门文章

  1. php empty()和isset()的区别
  2. oracle RAC的VIP和scan
  3. session_id
  4. Autools学习总结(一)
  5. valgrind——hisi平台valgrind
  6. ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
  7. 使用纯C++实现SQL Server2005 数据库读写操作详细步骤
  8. 【Qt】QPixmap加载图片报错:Corrupt JPEG data: premature end of data segment Didn‘t expect more than one scan
  9. 送给那些还在迷茫的人
  10. python自定义随机数_python:numpy.random模块生成随机数