mysql数据库访问构件的实现

mysql数据库访问构件的实现

ID:13169669

大小:353.50 KB

页数:6页

时间:2018-07-21

mysql数据库访问构件的实现_第1页
mysql数据库访问构件的实现_第2页
mysql数据库访问构件的实现_第3页
mysql数据库访问构件的实现_第4页
mysql数据库访问构件的实现_第5页
资源描述:

《mysql数据库访问构件的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MySQL数据库访问构件的实现摘要:本文阐述了MySQL数据库访问构件的实现原理,并通过实例详细地描述了应用软件调用该构件接口的使用方法。关键字:MySQL;数据库访问构件;数据库1.引言MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司,目前已被Oracle公司收购。由于其体积小、速度快、总体拥有成本低,开放源码等诸多特点,MySQL已被广泛地应用在Internet网站、中小型软件系统中。MySQL提供各种语言的数据库访问接口,应用软件可通过调用其接口函数完成对数据库的操作与访问。在实际工程应用中,笔者发现在软件编码中直接调用MySQL接口函数访问数据库存在

2、以下弊端:1)需在程序代码中拼写SQL语句,由于SQL语法的严格规定,导致简单的SQL语句拼写工作,也需程序员耗费一定的时间进行相应的调试。2)为实现数据库服务器的双机同步处理,需要在调用MySQL接口函数的代码中,增加当前服务器状态的判定,降低了代码的简洁性,增加了程序的复杂性、程序的维护成本。3)由于调用MySQL查询接口所返回的结果集为字符串形式,因此,应用软件必须对结果集进行格式转换,并且当结果集中有NULL指针时,有可能格式转换异常,从而引起应用软件的异常。4)当应用软件进行升级、重构时,需在代码中进行大量重复地工作。为了避免以上问题,笔者根据软件工程中封装变化的原理,构建了一个M

3、ySQL数据库访问构件(适用于C/C++)。2.实现原理应用软件通过调用该数据库构件接口进行数据库访问,可解决直接调用MySQL接口所造成的种种弊端,在该数据库访问构件中,笔者利用C++的模板与运行时动态类型识别技术,实现了以下功能:1)SQL语句的自动拼写功能。2)MySQL数据库访问的连接、查询、修改、删除接口。3)数据库服务器双机同步处理。4)根据应用软件所指定的查询结果集的数据类型,自动进行结果集的格式转换。 通过应用该构件,应用软件可按以下构架模式完成对MySQL数据库访问与操作,如图:图1 应用软件调用MySQL数据库访问构件关系图构架描述:应用软件根据访问具体需求调用相应构件接

4、口,由构件完成相应数据库访问的具体处理事务,并将处理结果返还给应用软件,该构件有利于减少应用软件对数据库编程接口的依赖,在一定程度上提高了应用软件的可移植性。3.MySQL数据库访问构件使用方法在该小节中通过举例,详细说明了数据库访问构件查询、修改、删除等接口的使用方法。假定在MySQL的TEST库中存在数据库表Employee,该表结构定义如下:表1 Employee表结构字段标识类型范围查询条件存储要求备注Namechar[10]√主关键字学生姓名FlagTinyintUnsigned1-2性别1:男,2:女OldTinyintUnsigned0-255年龄AddressChar[100

5、]地址TelChar[20]联系电话3.1查询接口使用方法调用MySQL数据库访问构件进行查询处理时,按以下步骤实施:1)应用进程设置数据库句柄、表名、所查询字段、以及数据结构集。2)调用数据库访问构件中查询接口。3)在构件查询处理中,通过判定当前数据库服务器主备机状态,确定是否执行相应查询处理,并自动拼写相应的SQL语句,调用MySQL接口,执行相应的查询处理。4)数据库访问构件对查询结果集进行格式转换,输出应用进程所预定义的数据类型。1)应用进程获得格式化结果集。查询处理的序列图如下:图2 查询处理序列图在本文中所定义的查询结果集接口如下表:表2 Employee表查询结构集接口定义接口

6、名Employee接口描述应用进程查询数据库的结果集接口采用紧缩形式,按一个字节对齐数据类型定义说明值域备注Charname[11]姓名最多10个字符或5个汉字Charflag性别1-2shortold年龄0-255性别,1:男,2:女Charaddress[101]地址最多100个字符或50个汉字chartel[21]联系电话最多20个字符查询处理代码实例:charcond[100];//查询条件缓冲区structEmployeem;Sesqldata(DB_TEST,"Employee");//DB_TEST:数据库句柄,Student:访问表名sprintf(cond,"Name='%

7、s'",name);//查询条件data.add_sel_part_field("Name",T_STRING,11);//字段名,输出结构集name类型,长度data.add_sel_part_field("Flag",T_UCHARINT);//字段名,输出结构集flag类型data.add_sel_part_field("Old",T_USHORT);//字段名,输出结构集Old类型data.add_s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。