欢迎来到 翰文编程!专业源码交易平台,海量精品源码任你挑选。
登录 免费注册 帮助中心 收藏本站
个人中心 我的订单
首页 > 文章详情

使用数据库

来源:翰文编程 源码设计 定制服务  发布日期:2013-10-09  点击率:2
第21章 使用数据库

从网络论坛到播客采集软件甚至备份程序的一切频繁地使用持久存储的数据库。基于SQL的数据库往往是相当方便:速度快,可扩展从微小到巨大的尺寸,可以在网络上运行,经常帮助处理锁定和事务,甚至还可以为应用提供故障转移和冗余。数据库有许多不同:大的商业数据库如Oracle,开源的引擎如PostgreSQL或MySQL,甚至嵌入式引擎如sqlite。
因为数据库是如此重要,haskell对他们的支持也很重要。在本章中,我们将向你介绍一个用于数据库的haskell框架。我们也将使用这个框架建立一个播客下载器,我们将在第22章中开发。

HDBC概述

在数据库栈的底层是数据库引擎,它负责在磁盘上实际存储数据。著名的数据库引擎包括PostgreSQL,MySQL和Oracle。
大多数现代数据库引擎支持SQL,作为数据流入流出关系数据库的标准方式。这本书将不会提供SQL或关系型数据库管理的教程。
一旦你有一个支持SQL的数据库引擎,你需要一个和它沟通的方式。每个数据库都有它自己的协议。由于SQL在不同数据库之间是相同的,使用不同的驱动为每个单独的协议生成一个通用的接口是可能的。
Haskell有几个可用的不同的数据库框架,一些提供基于其它框架的高层。本章中,我们将集中精力在Haskell数据库连接系统(HDBC)。HDBC是一个数据库抽象库。也就是说,你可以使用HDBC编写代码并且可以访问存储在几乎任何SQL数据库中的数据而很少或根本不需要修改代码。即使你从来不需要切换底层数据库引擎,HDBC系统的驱动程序使你在统一的接口下有大量的选择。
Haskell的另一个数据库抽象库是HSQL ,这和HDBC有类似的用途。还有一个更高层次的框架称为HaskellDB,它位于HDBC或HSQL之上,旨在帮助程序员隔离使用SQL的细节。然而,它不具有广泛的吸引力,因为它的设计限制某些相当常见的数据库访问模式。最后,Takusen是一个使用“left fold”的方式来读取数据库的框架。

安装HDBC和驱动程序

要使用HDBC连接到一个给定的数据库,你需要至少两个包:通用接口和一个特定的数据库驱动程序。您可以获取通用HDBC包,和所有其他的驱动,从Hackage(http://hackage.haskell.org/)。本章中,我们将使用HDBC版本1
.1.3
你还需要一个后台的数据库和后台的驱动。这一章中,我们将使用SQLite版本3。SQLite是一个嵌入式数据库,所以它不需要一个单独的服务器并容易建立。许多操作系统已经附带SQLite版本3 。如果你的没有,你可以下载它从http://www.sqlite.org/ 。HDBC首页有一个到已知HDBC后端驱动的链接。 SQLite版本3的特定的驱动程序可以从Hackage获得。
如果你想使用HDBC与其他数据库,检查HDBC已知的驱动页面http://software.complete.org/hdbc/wiki/KnownDrivers 。在那里,你会发现一个到ODBC绑定的链接,它可以让你连接到几乎任何平台(Windows,POSIX和其他)上的几乎任何数据库 。你也将找到一个PostgreSQL绑定。MySQL通过ODBC绑定支持,MySQL用户的具体信息可以在HDBC-ODBC API文档(http://software.complete.org/static/hdbc-odbc/doc/HDBC-odbc/)找到。

连接数据库
购买须知:请加客服微信咨询购买,本程序源码配有系统运行视频,请联系客服索要视频文件。
服务范围:定制各类计算机程序设计,vue、jsp、java 各类框架;开发工具 eclipse / myeclipse / idea / vs 等;wap、android、ssm、springboot、asp.net、php、python(爬虫、django、flask)、node.js、react、winform、uniapp 小程序等。
E-mail:251836457@qq.com
客服 顶部