zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

数据库数据分析JDBC 1.6 读取数据 秘笈 Clojure
2023-09-11 14:18:20 时间

本节书摘来自华章社区《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。


ebc17623df18378ecf930b72d9bc3c7440530078

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

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

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

24a2311bd3d9aa094e9fabb4f1f3c87624798ea8

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数据分析秘笈》——导读 本节书摘来自华章社区《Clojure数据分析秘笈》一书中的目录,作者(美)Eric Rochester,更多章节内容可以访问云栖社区“华章社区”公众号查看