欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>Scala 数据库访问库:Scala Slick

Scala 数据库访问库:Scala Slick

2024-10-27 08:12:57 收藏本文 下载本文

“tony-hu”通过精心收集,向本站投稿了8篇Scala 数据库访问库:Scala Slick,下面是小编为大家带来的Scala 数据库访问库:Scala Slick,希望大家能够喜欢!

Scala 数据库访问库:Scala Slick

篇1:Scala 数据库访问库:Scala Slick

Slick 是 TypeSafe 推出的 Scala 数据库访问库,开发者可以使用 Scala 语言风格来编写数据查询,而不是用 SQL,

示例代码:

object Coffees extends Table[(String, Int, Double)](“COFFEES”) { def name = column[String](“COF_NAME”, O.PrimaryKey) def supID = column[Int](“SUP_ID”) def price = column[Double](“PRICE”) def * = name ~ supID ~ price}Coffees.insertAll( (“Colombian”, 101, 7.99), (“Colombian_Decaf”, 101, 8.99), (“French_Roast_Decaf”, 49, 9.99)) val q = for { c <- Coffees if c.supID === 101 // ^ comparing Rep[Int] to Rep[Int]!} yield (c.name, c.price)println(q.selectStatement)q.foreach { case (n, p) =>println(n + “: ” + p) }

项目主页:www.open-open.com/lib/view/home/136076354

篇2:ADO.NET数据库访问技术

作者:Web_凳子君 字体:[增加 减小] 类型:

本篇文章主要介绍了ADO.NET数据库访问技术以及在线或离线访问数据库的实现步骤,有需要的朋友可以参考下

一. ADO.NET的定义

ADO.NET来源于COM组件库ADO(即ActiveX Data Objects),是微软公司新一代.NET数据库的访问模型,是目前数据库程序设计人员用来开发基于.NET的数据库应用程序的主要接口,它利用.NET Data Provider(数据提供程序)进行数据库的连接和访问,通过ADO.NET数据库程序能够使用各种对象来访问符合条件的数据库内容,让提供数据库管理系统的各个厂商可以根据此标准开放对应的.NET Data Provider,这样设计数据库应用程序人员不必了解各类数据库底层运作的细节,只要掌握ADO.NET所提供对象的模型,便可访问所有支持.NET Data Provider的数据库。

ADO.NET结构模型如下所示:

图1. ADO.NET结构模型

ADO.NET是一个类库,这些类提供了很多的对象,可用于完成数据库连接和增删查改等操作。其中包括如下五个对象: 1)Connection:用来连接数据库(SQL Server使用的是SqlConnection对象); 2)Command:用来对数据库执行SQL命令,如增删查改等操作; 3)DataReader:用来从数据库中返回只读数据,用数据源填充DataSet对象; 4)DataAdapter:与DataSet对象相结合使用,实现对数据库的控制; 5)DataSet:可看作离线时内存中的数据库; 这五个对象提供了两种读取数据库的方式; 第一种方式:使用Connection、Command、DataReader,其权限只能读取或查询数据库; 第二种方式:使用Connection、Command、DataAdapter、DataSet,其权限能进行各种数据库的操作。 ADO.NET读取数据库操作示意图:

图1. ADO.NET结构模型

二. 使用ADO.NET在线访问数据库的步骤(这里用的是SQL Server 数据库)

1. 连接数据库

直接上一段代码:

using System.Data.SqlClient;string source = “server=(local); integrated security=SSPI; database=myDateabase;User ID=sa;pwd=sa”; SqlConnection conn = new SqlConnection(source); conn.Open; // 对数据库数据进行操作 conn.Close();

(1). 首先添加命名空间System.Data.SqlClient;

(2). 定义数据库连接字符串:

第一种方法:直接把数据库连接字符串存放在字符串对象中,如上代码所示;

第二种方法Web:将数据库连接信息存放在web.config配置文件中,然后通过使用ConfigurationStringSettings类进行调用。来个例子说明一下:

(a). 首先,在web.config配置文件的部分定义数据库连接信息:

(b). 在项目文件中,添加对Configuration的引用,在头部添加using System.Configuration。然后定义数据库连接字符串为:

代码如下:

string connstring = ConfigurationManager.ConnectionStrings[“myDatabase”].ConnectionString;

备注:必须添加对System.Configuration程序集的引用,才能解析上述代码中使用的ConfigurationManager类。

2. 创建数据库连接

1)创建Connection对象:

string conn = new SqlConnection(connString);

2)打开数据库: conn.Open(); 一般情况下,当在.NET中使用“稀缺”的资源时,如数据库连接、窗口或图形对象,最好确保每个资源在使用完毕后立即关闭。尽管.NET的设计人员实现了自动垃圾收集机制,垃圾最终会被回收,但仍需要尽可能早地释放资源,以避免出现资源匮乏的情况。 当编写访问数据库的代码时,因为使连接打开的时间略长于需要的时间,就可能影响其他会话。在极端的情况下,不关闭连接可能会使其他用户无法进入一整组数据表,极大地降低应用程序的性能。主要有两种方式可以确保数据库连接等类似的“稀缺”资源在使用完后立即释放。这两种方式如下: (1)第一种方式:采用try...catch...finally语句块 确保在finally中关闭任何已打开的连接。

try { // open the connection conn.Open(); // 对数据库数据进行操作 } catch (SqlException ex) { // log the exception } finally { conn.Close(); }

在给定的方法中可能会打开许多资源,这样try...catch...finally块的层次有时候不容易看清,

还有一种方式可以确保资源的关闭――using语句。 (2)使用using语句块

using(SqlConnection conn = new SqlConnection(connstring)){ // Open the connection conn.Open(); // 对数据库数据进行操作 }

无论块是如何退出的,using子句都会确保关闭数据库连接。

3. 创建数据库操作命令:

Connection对象与数据源建立连接后,使用Command对象对数据源执行查询、插入、修改和删除等操作。

(1) 创建SQL数据库操作命令: sqlQuery查询语句具体规则请详见我的系列文章:【读书笔记】SQL Server查询语句_邓智容 (2) 创建Command对象:

(a). 方法一:

代码如下:

SqlCommand command = new SqlCommand(); command.Connection = conn; command.CommandText = “SQL语句”;

(b). 方法二:

SqlCommand command = new SqlCommand(“SQL语句”, conn);

备注: 1). SQL查询语句若含有C#程序的变量并以字符串形式连接,则应注意数据为非数字的变量应用单引号括起来; 2). 在SQL查询语句中使用参数化查询语句的话,譬如:

command.CommandText = “SELECT * FROM myTable WHERE siteName=@siteName”;

当需要给该参数赋值时,可以使用Command对象建立参数对象,然后再赋值:

代码如下:

command.Parameters.Add(new SqlParameter(@siteName, siteName)); command.Parameters[“@siteName”].Value = “#”;

备注: 在.Net Framework 2.0中SqlClient增加了AddWithValue(string parameterName, object value)方法。该方法简化了调用储存过程的输入参数过程,在运行时对所输入的数据类型进行判断,获取对应的数据库类型。 因此该方法在运行效率上比用 Add(string parameterName, SqlDbType sqlDbType, int size, string sourceColumn)方法要低。 在效率要求较高的地方仍然建议使用Add()方法,其它场合可以使用AddWithValue()简化代码编写量。

4. 执行sqlQuery命令:

定义好命令后,就需要执行它。执行的语句有多种方式,这取决于要从命令中返回什么数据。Command类提供了下述可执行的命令: (1) ExecuteNonQuery() ―― 执行命令,但不返回任何结果。一般用于UPDATE、INSERT或DELETE语句中,其中唯一的返回值是受影响的记录个数。但如果调用带有输出参数的存储过程,该方法就有返回值。 (2) ExecuteReader() ―― 执行命令,返回一个类型化的IDataReader。是从数据源中选择某些数据的最简单快捷的方法。 (3) ExecuteScalar() ―― 执行命令,返回结果集中的第一行第一列的值。

5. 对数据库操作完毕后关闭数据库连接:

conn.Close();

三. 离线数据库访问

DataAdapter对象主要在Connection对象和DataSet对象之间执行数据的传输工作,将数据填充到DataSet对象中,也可把DataSet对象更新后的数据返回到数据源中,也可架构在Command对象上,通过CommandBuilding对象生成DataAdapter的Insert、Update和Delete等SQL操作命令。使用DataSet和DataTable对象访问数据源后,ADO.NET会自动离线,在内存中处理数据,如有修改数据的操作,将自动重新连接数据源,更新数据库。DataSet对象、DataAdapter对象与数据源之间的关系如下:

DataSet <--->DataAdapter <--->数据源

下面是使用DataAdapter进行离线数据库访问的操作步骤:

1. 创建DataAdapter、DataTable对象(使用的是SQL Server数据库)

代码如下:

SqlAdapter da = new SqlAdapter(“sqlQuery查询语句”, conn); DataSet = ds = new DataSet(); DataTable dt = new DataTable();

2. 将数据填充到DataTable对象

da.Fill(ds, “TableName”); dt = ds.Tables[“TableName”];

3. 对DataTable中的数据进行处理 TataTable对象的属性和方法有:

名称 属性/方法 说明

Rows.Add() 方法 插入新数据行

Rows[n].Delete() 方法 删除第n行的记录

Rows.Count 属性 获取行数

Rows[i][“ColumnName”] 属性 获取第i行、列名为ColumnName的值

Rows[i][j] 属性 获取第i行、第j列的值

还有一种数据查询技术:LINQ。下回再讨论。

篇3:数据库访问笔试经验

数据库访问笔试经验

在茫茫的大海上有许多的岛,其中一个岛的名字叫做“应用程序岛”。这座岛上商业非常发达,高楼大厦、店铺林立。但是岛的面积不够大,没有地方建立仓库。所以市长决定,把临近的一座小岛开发出来,专门作为数据仓库来使用,这座岛的名字就叫“数据库岛”。

市长在数据库岛上面建立了一个MSSQL数据库,这样各个商场、超市就可以把自己的货物放进去了。两个岛相邻很近,为了便于运输,所以直接在两个岛之间建立了五座大桥。并且成了一个“数据访问池”的部门来专门管理这五座桥。

有一个叫command的家伙很聪明,觉得商机来了,于是他就成立了一家Command物流公司,专门负责两座岛之间的货物运输。物流公司成立了几个下属部门:Connection、DataReader。Connection负责与连接池的联系,申请大桥的临时使用权,并且还要提供车辆。 DataReader负责装卸货物。

好了,万事具备只欠东风。物流公司成了好了之后就坐等客户上门了。不久来了一位客户,是岛上的一个书店,他们购进了一批图书,需要送到数据库岛的仓库里。

【添加记录的情况】

Command接到了这个任务很高兴,终于开张了。领导当然不能自己亲自去干活了,于是派出了明星员工cm007来负责这个任务。

SqlCommand cm007 = new SqlCommand();

Cm007从书店那里得到了指令(就是SQL语句)和货物,来到Connection部门。

cm007.CommandText = “”;

Connection部门派出了得力员工cn007

SqlConnection cn007 = new SqlConnection();

cm007.Connection = cn007;

cn007开着车,带着cm007来到了大桥,由cn007和连接池联系,想要申请一座大桥的临时使用权。

cn007.Open();

连接池得到了这个申请之后,查看了一下大桥的使用情况,现在五座大桥都没有人使用,于是把001号大桥的使用权交给了cn007。这个时候,这座001号大桥就由cm007他们独占了,其他任何人都不可以使用。而且是按照独占时间来收取费用的。

一行人通过001号大桥来到了数据库,cm007把指令交给了数据库管理员开始交货。数据库管理员按照指令,把货物放到了指定的.位置。办好之后cm007带着数据库的确认证明,从大桥返回到了应用程序岛。离开大桥后,cn007又给连接池发了一个申请。

cn007.Close();

连接池得到了这个申请后,收回了001号大桥的使用权,这样其他人就又可以使用这个大桥了。

cm007一行人来到了书店,把数据库管理员的证明交给了书店,客户很满意,这个任务也就完成了。回到物流公司交差。

cn007.Dispose();

cm007.Dispose();

command很高兴,首战告捷,以后的生意一定会很红火呀。

【提取(查询)记录,向上层直接返回DataReader的情况】

第二天,那家书店又来找command,要从数据库岛提五本书过来。又来生意了,太好了,于是又派出了cm007和cn007。不过这次和昨天不太一样,昨天是送货到仓库,今天是从仓库提货,

这次还需要DataReader派装卸工来配合。

轻车熟路,cn007开着车带着大家来到了大桥,cn007申请了一座大桥的使用权,来到了数据库岛,cm007把指令交给了数据库管理员开始提货。不过这次却遇到了一点小问题,运输车的运载量的太小了,一次只能运一本书(一条记录)。可是这次却需要提五本书(五条记录),没办法,只好多跑几趟了。

带上一本书(一条记录),来到了书店,书店老板很高兴,这么快就到了呀,赶快卸货上架吧。咦等等,怎么只有一本书呀。Cm007只好解释,我们的车运载量太小了,一次只能运一条记录,不过速度还是很快的呀。

书店老板想了想,也凑合了,那你们赶快运下一条记录吧。

如是这般,折腾了五趟,总算把货物全都运完了。

“等等”,cn007说,“大桥的使用权还没有交回去呢。”于是大家又来到了桥头,把使用权交了回去。

最后回到物流公司交差。

【改进,向上层返回DataTable】

这回command可高兴不起来了。大桥是按照占用时间来收费的,这么来回折腾,大桥的占用时间明显变长了,这就增加了成本呀。另外现在汽油这么贵,来回折腾烧的可都是钱呀,就不能跑一趟多运点吗?

于是command把大家召集过来一起商量这个事情。cn007说,大桥这一段没有什么办法可想了,一次只能运出来一条记录,这个也不知道是谁规定的,我们也改不了。不过从桥头到客户那里我们倒是可以想想办法,我有一个朋友,DataAdapter,他们也许会有办法。Command听了也没有什么其他的方法,那就把DataAdapter请过来,一起商量一下吧。

第二天,DataAdapter过来了,也带来了他的解决方案。其实也很简单,他们公司可以提供集装箱(就是DataTable),在桥头等待,货物运到的时候由DataReader装到集装箱里,然后立刻返回运第二批货物。等需要的货物全都装完了之后,在开着集装箱运到客户那里。

SqlDataAdapter da007 = new SqlDataAdapter();

DataTable dt007 = new DataTable();

da007.Fill(dt007);

这样就节省了大桥的占用时间,节省了成本。到客户的这段路程,集装箱跑一趟就可以了,省油。

这个方案不错,command欣然接受。

过了几天,书店又要提一批图书,这次采用了集装箱的方案,果然大大节省了成本,客户也很满意,虽然一开始要等待比较长的时间,但是好在一次性就可以得到全部的货物。

【多种返回类型:DataRow、object[]、object】

有一天又发现了一个新问题,书店只要一本书。就一本书,也弄一个集装箱?太浪费了吧。怎么办?干脆直接用DataRow吧。实在不行用object[]。对于一条记录也足够用了。

【实体类开始登场】

于是物流公司的生意是越来越红火了。有一家大型超市也找到了command,希望能够为超市运输货物。这可是一比大买卖呀,command当然是很高兴。大家一拍即合。

一开始合作的也很愉快,但是过了几天出现了一点小问题。

【DataTable的缺点】

超市的老板找到了command,“你们的集装箱确实挺好,但是有一个小问题呀。他们的样子都是一模一样的,只能通过外面的标签来区分里面的货物,这个太不方便了,而且还容易出错,昨天本来想运一批‘微波炉’,结果标签写错了,写成了‘光波炉’。幸好发现的及时,否则就赔大发了。你们能不能想个好点的办法呢?”。

command心想:“你们把标签写错了,和我有什么关系呢?”不过客户就是上帝呀,得罪不起,还得想个办法解决一下。

于是又把大家都召集过来一起商议。只是这次并没有上次那么顺利,想了不少办法,但是都不理想。正在一筹莫展的时候,面向对象公司的推销员来了。

篇4:ASP技术访问WEB数据库

ASP技术访问WEB数据库

一. 访问WEB数据库的多种方案

目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:

1.公共网关接口CGI(Common Gateway Interface)

CGI是较早实现的技术。适用于多种服务器平台,如UNIX、WINDOWS等,但CGI的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。

2. INTERNET数据库连接器IDC(Internet Database Connector)

IDC集成在ISAPI(Internet Server API)中,充分利用了DLL技术,易扩充,但编程较CGI更为复杂,只适用于小型数据库系统。

3. 先进数据库连接器ADC(Advance Database Connector)

ADC提供了ActiveX Control来访问数据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。

4. JAVA/JDBC语言编程

JAVA语言是一种面向对象、易移植、多线程控制的语言,可通过JDBC去连接数据库。用JAVA/JDBC编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。

5. 动态服务器页面ASP(Active Server Page)

ASP是微软公司最新推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的最佳选择。

二. ASP简介

1.ASP访问数据库的原理

ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。

当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页返回用户端显示。

由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器,因而ASP源程序不会泄密,增加了系统的安全保密性。此外,ASP是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展应用范围。

2.ASP页面的结构:

ASP的程序代码简单、通用,文件名由.asp结尾,ASP文件通常由四部分构成:

1) 标准的HTML标记:所有的HTML标记均可使用。

2) ASP语法命令:位于<% %> 标签内的ASP代码。

3) 服务器端的include语句:可用#include语句调入其它ASP代码,增强了编程的灵活性。

4) 脚本语言:ASP自带JScript和VBScript两种脚本语言,增加了ASP的编程功能,用户也可安装其它脚本语言,如Perl、Rexx等。

3.ASP的运行环境

目前ASP可运行在三种环境下。

1) WINDOWS NT server 4.0运行IIS 3.0(Internet Information Server)以上。

2) WINDOWS NT workstation 4.0运行Peer Web Server 3.0以上。

3) WINDOWS 95/98运行PWS(Personal Web Server)。

其中以NT server上的IIS功能最强,提供了对ASP的全面支持,是创建高速、稳定的ASP主页的最佳选择。

4.ASP的内建对象

ASP提供了六个内建对象,供用户直接调用:

1) Application对象:负责管理所有会话信息,可用来在指定的应用程序的所有用户之间共享信息。

2) Session对象:存贮特定用户的会话信息,只被该用户访问,当用户在不同WEB页面跳转时,Session中的变量在用户整个会话过程中一直保存。Session对象需cookie支持。

3) Request对象:从用户端取得信息传递给服务器,是ASP读取用户输入的主要方法。

4) Response对象:服务器将输出内容发送到用户端。

5) Server对象:提供对服务器有关方法和属性的访问。

6) Object Context对象:IIS 4.0新增的对象,用来进行事务处理。此项功能需得到MTS(Microsoft Transcation Server)管理的支持。

5. ASP的主要内置组件:

1) Ad Rotator组件:用来按指定计划在同一页上自动轮换显示广告,用于WWW上日益重要的'广告服务。

2) Browser Capabilities组件:确定访问WEB站点的用户浏览器的功能数据,包括类型、性能、版本等。

3) Database Access组件:提供ADO (ActiveX Data Objects)来访问支持ODBC的数据库。

4) File Access组件:提供对服务器端文件的读写功能。

5) Content Linking组件:生成WEB页内容列表,并将各页顺

序连接,用于制作导航条。

此外,还可安装Myinfo、Counters、Content Rotator、Page Count等组件,用户也可自行编制Actiive组件,以提高系统的实用性。

6. Database Access组件ADO

WWW上很重要的应用是访问WEB数据库,用ASP访问WEB数据库时,必须使用ADO组件,ADO是ASP内置的ActiveX服务器组件(ActiveX Server Component),通过在WEB服务器上设置ODBC和OLEDB可连接多种数据库:如SYBASE、ORACLE、INFORMIX、SQL SERVER、ACCESS、VFP等,是对目前微软所支持的数据库进行操作的最有效和最简单直接的方法。

ADO组件主要提供了以下七个对象和四个集合来访问数据库。

1) Connection对象:建立与后台数据库的连接。

2) Command对象:执行SQL指令,访问数据库。

3) Parameters对象和Parameters集合:为Command对象提供数据和参数。

4) RecordSet对象:存放访问数据库后的数据信息,是最经常使用的对象。

5) Field对象和Field集合:提供对RecordSet中当前记录的各个字段进行访问的功能。

6) Property对象和Properties集合:提供有关信息,供Connection、Command、RecordSet、Field对象使用。

7) Error对象和Errors集合:提供访问数据库时的错误信息。

三. ASP访问数据库步骤

在ASP中,使用ADO组件访问后台数据库,可通过以下步骤进行:

1. 定义数据源

在WEB服务器上打开“控制面板”,选中“ODBC”,在“系统DSN”下选“添加”,选定你希望的数据库种类、名称、位置等。本文定义“SQL SERVER”,数据源为“HT”,数据库名称为“HTDATA”,脚本语言采用Jscript。

2,使用ADO组件查询WEB数据库

1) 调用Server.CreateObject方法取得“ADODB.Connection”的实例,再使用Open方法打开数据库:

conn = Server.CreateObject(“ADODB.Connection”)

conn.Open(“HT”)

2) 指定要执行的SQL命令

连接数据库后,可对数据库操作,如查询,修改,删除等,这些都是通过SQL指令来完成的,如要在数据表signaltab中查询代码中含有“X”的记录

sqlStr = “select * from signaltab where code like ‘%X%’”

rs = conn.Execute(sqlStr)

3) 使用RecordSet属性和方法,并显示结果

为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据。

rs = Server.CreateObject(“ADODB.RecordSet”)

rs.Open(sqlStr,conn,1,A)

注:A=1读取

A=3 新增、修改、删除

在RecordSet组件中,常用的属性和方法有:

rs.Fields.Count: RecordSet对象的字段数。

rs(i).Name: 第i个字段的名称,i为0至rs.Fields.Count-1

rs(i): 第i个字段的数据,i为0至rs.Fields.Count-1

rs(“字段名”): 指定字段的数据。

rs.Record.Count:游标中的数据记录总数。

rs.EOF: 是否最后一条记录。

rs.MoveFirst: 指向第一条记录。

rs.MoveLast: 指向最后一条记录。

rs.MovePrev: 指向上一条记录。

rs.MoveNext: 指向下一条记录。

rs.GetRows: 将数据放入数组中。

rs.Properties.Count:ADO的ResultSet或Connection的属性个数。

rs.Properties(item).Name:ADO的ResultSet或Connection的名称。

rs.Properties: ADO的ResultSet或Connection的值。

rs.close: 关闭连接。

4) 关闭数据库

conn.close()

四.查询WEB数据库举例

下面这段示例程序是访问SQL SERVER数据库的 signaltab表,表中有三个字段:code(代码字段,字符型,3位),class(分类字段,字符型,10位),memo(备注字段,字符型,20位)。程序中数据源DSN:HT、用户名:client、口令:passwd。

屏幕输入页面input.asp

<% @ language=javascript %>

请输入查询条件PLEASE INPUT CONDITION

数据库处理程序shotquery.asp

篇5:基于PHP的Web数据库访问

基于PHP的Web数据库访问

基于PHP的Web数据库访问?

付俊英?

(南京师范大学计算机系  南京210097)?

摘要

本文介绍PHP的优点和特点,结合实例阐述了PHP访问MySQL数据库的方法。?

关键词   PHP  MySQL  ODBC?

1. 引言

在Internet应用中,将服务器端脚本技术和客户端脚本技术结合起来可以制作出丰富多彩的页面。CGI和ASP是比较流行的服务器端脚本技术。通常CGI在跨平台的开发中扮演着主要角色,可以使用VB、C或Perl等来实现,用它们写的CGI脚本是一个单独的程序,而不是嵌在HTML文档中再通过另一个程序解释替换的,所以它是一种“非嵌入式”的服务器端脚本。另外,每一次修改CGI程序都必须重新将其编译成执行文件,因此,这样的编写方式事实上是比较困难且没有效率。ASP则是嵌入式的服务器端脚本,每一次修改脚本并不需要重新编译成执行文件就可以直接执行,但ASP有一个致命的缺点:不具有跨平台开发能力。目前ASP只能在Windows环境下运行,而无法在Internet上的Unix平台下使用。在这种情况下PHP的问世,在Wel CGI的领域里掀起了一场革命。?

2. PHP介绍?

PHP (Personal Home Page)是一种跨平台的服务器端嵌入式脚本语言。它最初是Rasmus Lerdorf于1994年开发的。早期的版本,提供了访客留言本、访客计数器等简单功能。随后,在第二版中增加了对mSQL的支持。自此奠定了PHP在动态网页开发上的影响力,并迅速在Internet上流传开来。截止,已有超过十五万个站点使用PHP。同时,PHP的源代码完全公开,在Open Source意识抬头的今天,它更是这方面的中流砥柱,随着新函数库的不断加入,使PHP无论在Unix或是Win32的平台上都可以有更多新的功能。如今,PHP已发展至4.0版。在语法方面,PHP混合了C、Java、Perl以及PHP以前版本的优点。它相当于Script与CGI的结合语言,但是其执行将效率却比CGI更好,程序编写也比HTML更便利且更富有弹性,程序的安全性及保密性也比Script好。在函数支持方面,PHP几乎覆盖了Web应用的各个方面,其中最有特色的`是数据库函数,使用PHP完成一个含有数据库功能的网页非常简单,而PHP支持的数据库也非常丰富,目前包括:Oracle、Sybase、mSQL、MySQL、Informix等。?

3. 访问MySQL数据库?

MySQL是一个快速、健壮和易用,且支持多线程、多用户的SQL数据库服务器。虽然PHP通过ODBC支持几乎所有的数据库。但对于开发数据驱动的网站而言,选择MySQL应该说是最佳组合,这不仅因为MySQL是免费的,更在于它具有许多同大型数据库相媲美甚至超过它们的优良性能。PHP实现对MySQL数据库的访问有两种方法:?

1)利用PHP的数据库函数连接?

这里主要用到四个数据库函数:?

mysql_connect ()建立与MySQL服务器的连接。?

mysql_select_db ():选择MySQL服务器中的数据库供以后的数据查询操作query处理。

mysql_query ():送出query字符串以帮助MySQL做相关的处理或执行。?

mysql_fetch_row ():用来将查询结果result单行移到数组变量中。数组的索引是数字

索引,第一个索引值是0。?

2)通过ODBC连接?

PHP通过ODBC连接MySQL数据库主要用到四个函数:?

Odbc_connect ():用来同ODBC数据源建立连接。?

Odbc_do ():用来在建立连接之后执行数据库查询。?

Odbc_result():用于取得当前记录行中某个字段的值。?

Odbc_fetch_row ():用来把查询结果保存到数组,每个数组元素对应一条记录。?

上述两种方法在与数据库建立连接的语法上,并没有太大差别。不过在相比较之下,通过ODBC方式存取数据库比PHP直接存取MySQL耗时间,但通过ODBC接口存取数据库不必担心使用何种数据库,如Oracle,Informix,Sybase 等。它们都支持ODBC接口,这样可减少更换数据库时需要更改程序的问题。图1显了PHP连接数据库的两种方法。

PHP

ODBC

                                     MySQL

                                    MySQL

图1   PHP连接数据库说明图

4. 一个应用实例

现在很多校园网站都提供成绩查询功能。PHP和MySQL数据库相结合使用可以方便的实现此功能。首先建立数据库Score 及数据表Score。建表SQL语句如下:?

Creat table Score(?

Stu_no varchar(10) not null,?

name varchar(10) not null,?

scorel tinyint(4),?

score2 tinyint(4),?

Primary Key(stu_no)?

);?

1) 通过PHP的数据库函数访问MySQL的代码如下:?

〈?php?

print(“〈html〉〈head〉\n”);?

print(“〈title〉成绩查询〈/title〉〈/head〉\n”);?

print(“〈body〉〈cennter〉”);?

print(“〈font size=6 color=”ff0000〉您的成绩如下〈/font〉”);?

$comm=mysql_connect(“localhost”,“root”,“”);?

mysql_select_db(“Score”,$comm);?

$str=“Select *From Score Where stu_no=’$pstu_no'and name=’$pname'”;?

$reault=mysql_query($str,$comm);?

print(“〈table align=center〉”);?

$sqlrow=mysql_fetch_row($result));?

print(“学号:$sqlrow[0]”);?

print(“姓名:$sqlrow[1]”);?

print(“成绩1:$sqlrow[2]”);?

print(“成绩2:$sqlrow[3]”);?

print(“〈/table〉〈body.〈/html〉”);?

?〉?

2) 通过ODBC访问MySQL数据库的代码如下(省略的代码同上):?

〈?php?

…?

$comm=odbc_connect(“Score”,“system”,“”);?

$str=“Select*From Score Where name=’$pname’and stu_no=’$pstu_no’”;?

$result=odbc_do($comm,$str);?

…?

while(odbc_fetch_row($result))?

{?

$pstu_no=odbc_result($result,”stu_no“);?

$pname=odbc_result($result,”name“);?

$score1=odbc_result($result,”score1“);?

$score2=odbc_result($result,”score2“);?

print(“学号:$pstu?-no”);?

print(“姓名:$pname”);?

print(“成绩1:$score1”);?

print(“成绩2:$score2”);?

}?

…?〉?

5.结束语?

对于Wed服务器端的开发,PHP是一种易开发、高效能的动态脚本编程语言。在未来的几年内,PHP必将成为主流的脚本语言,并被Wed研究和开发人员熟悉和掌握。?

参考文献?

[1]钟伟财 编著 精通PHP4.0与MySQL架构Wed数据库实务〓〓中国青年出版社?

[2]蒋宇清 徐州师范大学计算机系 新一代嵌入式脚本语言PHP 计算机时代

第10期〖FL)〗

篇6:基于ASP的Web数据库访问

基于ASP的Web数据库访问

基于ASP的Web数据库访问

唐菊生, 孔勇

(江苏理工大学电气信息工程学院,镇江 21)

摘  要:  本文首先描述了ASP的工作原理及ASP

的内置对象和组件,并着重讨论了ASP的数据库访问组件ADO,在此基础上给出了用ASP实现对Web数据库访问的应用实例。

关键词: ASP;  ADO;  Web数据库

Accessing to Web Database Based on ASP

Tang Jusheng, Kong Yong

(

Jiangsu

Universityof Science and Technology,

Zhenjiang212013)

Abstract: This paper described the working principle of ASP and its built-in objects and components. The database access component

ADOwas discussed with emphasis. Based on this a practical example of accessing Web database by ASP was proposed.

Key Words:   ASP;  

ADO;  Web Database

在基于B/S结构的多层分布式Web应用系统中,为增强Web页面的动态交互性,使浏览端用户能在线访问Web数据库,关键技术就是Web服务器与Web数据库的连接。传统的方法主要有CGI、ISAPI和JDBC等技术,但这些技术开发步骤烦琐且无法直接与HTML集成,只适合专门的程序员使用,在实际应用中难以进行快速开发、及时维护和大面积推广。应运而生的'ASP(Active Server Page)技术正好弥补了这些不足, 在微软倡导的Active平台中,ASP属于服务端ActiveX技术,它综合了传统的HTML文件、ActiveX脚本程序(Script)语言及ActiveX组件技术,在开发方面具有跨平台、面向组件的特性,应用起来更加灵活、更具交互性。微软将其描述为:“一个服务器的脚本环境,在这里可以生成和运行动态的、交互的、高性能的Web服务器应用程序”。

篇7:用perl访问mysql数据库数据库

一. 安装DBI模块 步骤1: 从TOOLS栏目中下载DBI.zip,下载完后用winzip解开到一个temp目录,共有三个文件: Readme DBI.ppd DBI.tar.gz 步骤2: 在DOS窗口下,temp目录中运行下面的DOS命令: ppm install DBI.ppd 如果提示无效命令,可在perl/bin目录下运行 二.

一. 安装DBI模块

步骤1:

从TOOLS栏目中下载DBI.zip,下载完后用winzip解开到一个temp目录,共有三个文件:

Readme

DBI.ppd

DBI.tar.gz

步骤2:

在DOS窗口下,temp目录中运行下面的DOS命令:

ppm install DBI.ppd

如果提示无效命令,可在perl/bin目录下运行

二. 安装DBD-Mysql模块

从软件下载中下载DBD-Mysql.zip,安装方法同一.

三. 准备数据库

启动mysql,首先创建一个数据库mydata,然后创建一个表address

mysql>create database mydata;

Query OK, 1 row affected (0.00 sec)

mysql>use mydata;

Database changed

mysql>create table address (

->id int(5) not null,

->name varchar(40) not null,

->email varchar(50) not null,

->telephone int(12) null);

Query OK, 0 rows affected (0.05 sec)

输入些数据:

mysql>insert into address values (

->1,’Nighthawk’,’nighthawk@163.net’,92384092);

Query OK, 1 row affected (0.00 sec)

四. 下面用perl程序来插入若干记录并做查询.

use DBI;

#连接数据库mydata

my $dbh = DBI->connect(’DBI:mysql:mydata’) or die ”无法连接数据库: “ . DBI->errstr;

print ”插入若干记录n“;

my $sth = $dbh->prepare(q{

INSERT INTO address (id, name,email,telephone) VALUES (?, ?, ?, ?)

}) });

print ”输入记录,回车结束:“;

while ($inputdata =) {

chop $inputdata;

last unless($inputdata);

my ($id, $name,$email, $tel) = split( /,/, $inputdata);

$sth->execute($id, $name, $email,$tel)

}

# $dbh->commit;

print ”下面根据输入的名字打印出EMAIL地址和电话n“;

my $sth = $dbh->prepare(’SELECT * FROM address WHERE name=?’)

or die $dbh->errstr;

print ”请输入姓名,回车结束:“;

while ($inputname =) {

my @data;

chomp $inputname;

last unless($inputname);

$sth->execute($inputname) or die ”错误: “ . $sth->errstr;

while (@data = $sth->fetchrow_array) {

print ”Email:$data[2]t Telephone:$data[3]n“;

}

}

#断开连接

$dbh->disconnect;

原文转自:www.ltesting.net

篇8:VB访问数据库的方法及接口的比较

VB访问数据库的方法及接口的比较

李湘江  邹筱梅

(长沙交通学院计算机工程系  长沙410076)

摘  要:本文介绍了几种Visual Basic访问数据库的方法,对这些数据接口的性能进行了比较,并提出相互的转化关系。

关键词:Visual Basic  数据访问接口  DAO  RDO  ADO

1  VB访问数据库的方法

VB访问数据库的方法很多,一般情况下分成两大类,而每一类又有很多方法。下面以列表的方式列出每一类,及每一类包含的方法。

1.1 接口对象法(API)

VBSQL:通过DB-Library访问微软的SQL Server

ODBC API:任何一种ODBC数据源  16位和32位

DAO/Jet:本地的Jet/Access.MDB、顺序索引数据库(ISAM)和任何ODBC数据源

DAO/ODBC Direct:任何一种ODBC 数据源(经过RDO)

RDO 2.0:任何一种ODBC数据源(LevelⅠ或Ⅱ)

ADO:任何一种ODBC数据源和任何经过OLE DB界面接口的数据源

1.2 数据控件法

Data Control:DAO/Jet数据界面接口

Data Control/ODBC Direct:DAO/ODBC Direct数据界面接口

RemoteData Control/RDC:RDO数据界面接口

Advanced Data Connector/ADC:ADO数据界面接口

2  几种接口的比较

ADC(Advanced Data Connector):高级数据连接器。提供绑定ADO数据源到窗体的数据绑定控件上。ADC主要是一种直接访问或者通过ADO访问远程OLE DB对象的一种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上的浏览器为基础的应用程序而设计的。

ADO(Active Data Objects):Active数据对象。是DAO/RDO的后继产物,ADO“扩展”了DAO和RDO所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。ADO实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口。可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件,是一个便于使用的应用程序层接口。ADO是为Microsoft最新和最强大的数据访问范例OLE DB而设计的,OLE DB为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。ADO在关键的Internet方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的'接口。因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。

DAO(Data Access Objects):数据访问对象。是一种面向对象的界面接口。通过DAO/Jet功能可以访问ISAM数据库,使用DAO/ODBC Direct功能可以实现远程RDO功能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似。DAO可通过ODBC像直接连接到其它数据库一样,直接连接到Access数据库。DAO最适用于单系统应用程序或小范围本地分布使用。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。

JET(Joint Engine Technology):数据连接性引擎技术。是一种基于工作站通过DAO的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数据库,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处理功能,并可对同种或异种数据源作查询处理。

0DBC(Open Database Connectivity):开放式的数据库连接技术。为异种数据库的访问提供了统一的接口。ODBC基于SQL(Structured Query Language),并把它作为访问数据库的标准。这个接口提供了最大限度的相互可操作性:一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。ODBC可以为不同的数据库提供相应的驱动程序,是一种公认的关系数据源的接口界面。它快而轻并且提供统一接口的界面,ODBC对任何数据源都未作优化。

ODBC API:数据库厂商为程序设计者提供的直接访问数据库的一组函数。注意:这里要指出的是,虽然ODBC API提供了很多很方便而且强大的功能。但是通常来说ODBC API都比较难学,而且使用很容易出错。虽然允许用ODBC API来操作ODBC句柄,但还是要小心,如果不正确地使用ODBC API,可能会导致不可预知的错误。例如,假如使用ODBC API代码来关闭连接或释放这些ODBC句柄中的任何一个,那么RemoteData控件或RDO的行为将是不可预知的。保存ODBC句柄以供备用也是没有意义的,因为它们是可变的。

ODBC Direct:是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。使用在有DAO代码存在的场合,可用来访问远程数据源。

OLE DB: 是COM模型的数据库接口。是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO技术的应用程序或用于C++的开发者开发定制的数据库组件。它能够处理任何类型的数据。OLE DB向应用程序提供一个统一的数据访问方法,而不考虑它们的格式和存储方法。在实际应用中,这种多样性意味着可以访问驻留在电子数据表、文本文件甚至邮件服务器,诸如 Microsoft Exchang中的数据。OLE DB不能被VB直接调用。

RDC(RemoteData Control):远程数据访问控件。是一种对RDO数据绑定的控件。可以输出特定的结果集到数据源控件。

RDO(Remote Data Objects):远程数据对象。是一个到ODBC的、面向对象的数据访问接口,远程数据对象和集合为使用代码来创建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。对象和集合都具有描述数据库的各个部件特征的属性以及用来操作这些部件的方法。可以在对象和集合之间建立起关系,这些关系就代表了数据库系统的逻辑结构。它同易于使用的DAO style组合在一起,提供了1个接口,形式上展示出所有ODBC的底层功能和灵活性。RDO是ODBC API的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。尽管RDO在访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。但是,RDO已被证明是许多SQL Server、Oracle以及其他大型关系数据库开发者经常选用的最佳接口。RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性以及方法。

VBSQL:是Visual Basic结构化查询语言。是一种基于API的接口方法,几乎与C的DB-Library API相同。VBSQL只支持微软的SQL Server。VBSQL快而且轻但不支持对象界面。

3 性能比较及应用说明

用VB开发基于SQL Server的数据库系统,以上几种访问SQL Server的方法各有各的特点。DAOs方法是基于对象的,因而便于使用,但是它从Visual Basic到SQL Server的最慢的方式。ODBC API和VBSQL方法从本质上讲是基于程序的。ODBC API方法通用性好,允许最强的互操作性,编程简单,但速度慢于VBSQL方法。VBSQL方法通过VBSQL控件,提供了重要的SQL Server前端应用程序所需的灵活性、强大功能和良好性能。它具有真正的事件驱动及错误处理能力,完全支持异

步处理、游标和计算列等。这些都是VBSQL方法超出其它方法的优势,但其编程稍复杂。RDO是位于ODBC API之上的一个对象模型层,它依赖ODBC API、ODBC驱动程序以及后端数据库引擎来实现,用RDO所需的程序短小(约250 KB)、快速。RDO具备基本的ODBC处理方法,可直接执行大多数ODBC API函数,RDO包含在VB 4.0/VB 5.0企业版中,由MSRDO32.DLL动态连接库来实现。RDO是综合了DAO/Jet、VBSQL/DBLib和ODBC的优点的对象模型,包含ODBC API应用层,设计为在后台(服务器端)有数据库存在的前提下运行,是针对SQL Server和Oracle而特别设计的。RDO的优势在于它完全被集成在VB之中,可直接访问SQL Server存储过程、完全支持T-SQL、T-SQL调试集成在开发环境中、Visual Database Tools的集成化等。但微软已宣布今后不再对VBSQL/DBLib进行升级,而ODBC API函数一般的编程方式也不为人们所喜爱,RDO的应用将逐渐减少。至于实际使用哪一种接口方式,在很大程度上依赖于用户的应用程序的具体情况而定。

4  VB访问数据库的原则

应用VB访问数据库时,要具体问题具体分析,根据具体的环境、条件、要求而采用适当的方案,就应注意以下几个原则:

4.1 代码的重用和运行的效率

例如:通过使用ODBC数据源连接数据库的方法,可在变换多种数据库类型的情况下,而不用频繁修改代码。用VBSQL通过DB-Library就做不到。而ODBC接口并不是VB访问数据库运行效率最高的方法。同样,同是使用ODBC接口的ADO的效率要高于RDO。

4.2 实现的简便性,易维护性

如果一种方法实现起来很复杂,工程的开发必然造成人力物力的浪费,同时这样设计出来的应用程序只会支持起来更复杂或维护时更困难。例如:本地需要访问ISAM 或Jet 类型数据源,那么就使用DAO/Jet,而没有必要使用通过ODBC的方法。RDC实现起来要较RDO更容易。

4.3 安全性原则

这一条应根据环境和条件决定。例如局域网的网络安全性要好于广域网因而可直接利用数据控件如RDC,这样实现起来方便快捷,而广域网需要大量的错误捕获,如用RDC就不如用RDO易控制错误。

>

5  结束语

在数据访问接口中DAO最适用于单系统应用程序或小范围本地分布使用,而RDO已被证明是许多SQL Server、Oracle以及其它大型关系数据库开发者经常选用的最佳接口。ADO是DAO/RDO的后继产物。ADO 2.0在功能上与RDO更相似,而且一般来说,在这2种模型之间有一种相似的映射关系。ADO“扩展”了DAO和RDO所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法和参数,以及事件。

数据库接口中最新的是ADO,它是比RDO和DAO更加简单、更加灵活的对象模型。对于新工程,应该使用ADO作为数据访问接口。

不过,ADO并不是自动和现存的数据访问应用程序代码兼容的。当ADO封装DAO和RDO的功能性的时候,必须将许多语言要素转换为ADO语法。在某些情况下,这将意味着现存代码的某些功能的1个简单转换。在其它情况下,最佳的做法可能是用ADO的新功能重写该应用程序。同时要注意的是,ADO当前并不支持DAO的所有功能。ADO主要包括RDO风格的功能性,以便和OLE DB数据源交互,另外还包括远程和DHTML技术。

一般说来,在ADO的演化过程中,马上把大多数DAO应用程序移植到ADO上可能为时太早,因为当前的ADO并不支持数据定义(DDL)、用户、组等。不过,如果只将DAO用于客户/服务器应用程序,而并不依赖于Jet数据库引擎或不使用DDL,那么现在就可以移植到ADO。

参考文献

[1] 宋琦凡,付敬平,使用Visual Basic开发数据库应用软件,北京:电子工业出版社,1996

[2] Evangelos Petroutsos,Visual Basic5从入门到精通,北京:电子工业出版社,1997

[3] 孟小峰,开放数据库互连―ODBC 2.0使用大全,北京:清华大学出版社,1995

[4] 廖卫东,赵军.Visual Basic编程手册,北京:机械工业出版社,1996

作者简介:李湘江(1972-),男,工程师;邹筱梅(1962-),女,实验师,

主要从事网络、CAD、CAI及软件工程等方向的应用研究和教学工作。

作者单位:长沙交通学院计算机工程系  长沙410076

电话:0731-5219362(办)

E-mail:lxjzy@263.net

【Scala 数据库访问库:Scala Slick】相关文章:

1.面向程序员的数据库访问性能优化法则

2.参观访问写作技巧

3.页面升级访问紧急通知

4.访问页面升级紧急通知

5.电话访问员简历

6.访问参观记作文500字

7.紧急通知页面访问升级

8.访问员实习报告

9.网页升级访问紧急通知

10.页面访问升级通知

下载word文档
《Scala 数据库访问库:Scala Slick.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部