使用数据库连接池

E2EE内置ADO作为通用数据库解决方案。

使用数据库连接池和操作数据库主要有三个对象:

ADODB数据库连接池

ADODB数据库连接

ADODB数据库分页

1. 创建连接池

创建数据库连接池的原型:

ADODB数据库连接池.创建() : 逻辑型

服务器对象:“网站服务器”。传递服务器对象。统一错误日志等。

连接字符串:“文本型”。ADO的连接字符串。

数据库类型名称:“文本型”,可以被省略。例如:SQLite、MSSQL、MySQL等。

对象映射中心:“对象映射中心”,可以被省略。如果指定了对象映射中心才能执行查询到数据、保存对象和删除等ORM操作。

用户名:连接数据库使用的用户名。

密码:连接数据库使用的密码。

是否UNICODE:如果设置为真时,则所有文本参数都将自动转换为宽字节。用于所有的带参数SQL中的文本,用来确定是否为宽字符集存储(针对UTF8/UNICODE等字符集)。默认:假。

连接初始化SQL:连接创建成功后执行初始化SQL。设置为空文本时则不执行任何SQL。数据库连接创建成功后将自动执行此SQL。

取最后ID的SQL:“文本型”,可以被省略。用在ORM保存对象时使用,不使用ORM保存对象功能可不填写。内置了:SQLite、MSSQL、MySQL 的取ID语句,这些数据库时不用填写。其它类型数据库请自己填写获取最后ID的语句,支持两个转义文本,分别是:“”和“”,使用时可组织类似如下语句:SELECT MAX() FROM 。

示例:

数据库连接池.创建 (留言本服务器, “Driver=SQLite3 ODBC Driver;Database=c:/网站/数据库.db”, "SQLite", , )

“连接字符串”和“数据库类型名称”通常是放在配置里的,配置文件支持定义路径,这样解决路径自动定位问题,同时更加灵活。

常用数据库连接字符串

[SQLite]

Driver=SQLite3 ODBC Driver;Database={{> /数据库.db }}

[MySQL5.3] 需要设置用户名和密码。[DataBase] 参数为数据库名称

Driver={MySQL ODBC 5.3 UNICODE Driver}; DataBase=test; Server=127.0.0.1; Port=3306; option=3; Charset=gbk;

SQLite 和 MySQL 时建议[是否UNICODE]参数设置为真。如果有可能有多编码时可以不用设置为真,而是在映射和执行SQL的参数中遇到UNICODE字段手动设置类型为“宽文本型”。

2. 操作数据库

操作数据库的核心对象是“ADODB数据库连接”。

2.1 获取数据库连接

获取数据库连接:

数据库连接 = 数据库连接池.取连接()

2.2 查询

查询数据 并返回为 存取列表:

数据库连接.查询([SQL], [最大记录数])

[最大记录数] 限定最多返回多少行数据。

查询第一条数据 并返回为 存取键值对:

数据库连接.查询头条([SQL])

2.3 执行

数据库连接.执行([SQL])

返回SQL是否执行成功,主要针对CREATE, UPDATE和DELETE等更新语句。

2.4 事务

数据库连接对象是抽象连接对象,不保留真实连接,只有执行事物时才绑定到真实连接,所以使用事务请务必保证 开启事务() 执行完数据库操作后务必调用 提交/回滚事务()。

开启事务(返回是否成功):

数据库连接.开启事务()

提交事务(返回是否成功):

数据库连接.提交事务()

当您操作完数据库之后,确定提交的数据都没有问题时,请务必做事务的提交。

开启事务(返回是否成功):

数据库连接.回滚事务()

当您在保存数据过程中,执行相关的保存逻辑出现问题,可以调用 回滚事务 撤销从开启事务开始的所有数据库更新操作。

3. 数据库和对象映射

3.1 查询数据库到自定义数据

映射到自定义数据时,需要查询所有关联表的数据,沿用上一章的数据定义。

用户: user

ID: 整数型 << user_id << [ID]

名称: 文本型 << user_name

性别: 文本型 << user_sex

年龄: 整数型 << user_age

身高: 长整数型 << user_hight

扩展数据: 用户扩展信息 << ID

用户扩展信息: user_ext

ID: 整数型 << user_id << [ID]

头像: 文本型 << user_avatar

描述: 文本型 << user_explain

网址: 文本型 << user_web

邮箱: 文本型 << user_email

电话: 文本型 << user_phone

假设这两张表示通过 user_id 进行一对一关联的,则对应的查询语句:

SELECT * FROM user AS u LEFT JOIN user_ext AS ue ON ue.user_id = u.user_id

最终返回的数据展开文本类似下面这样:

[

...

{

"user_age" : 31,

"user_avatar" : "/大西瓜.jpg",

"user_email" : "boychong2@126.com",

"user_explain" : "这个家伙很懒,什么都没有留下~",

"user_hight" : 172,

"user_id" : 88,

"user_name" : "JimStone",

"user_phone" : "15221861111",

"user_sex" : "女",

"user_web" : "www.jimstone.com.cn"

},

{

"user_age" : 32,

"user_avatar" : "/大西瓜.jpg",

"user_email" : "boychong@126.com",

"user_explain" : "这个家伙很懒,什么都没有留下~",

"user_hight" : 173,

"user_id" : 89,

"user_name" : "JimStone",

"user_phone" : "15221862222",

"user_sex" : "女",

"user_web" : "www.jimstone.com.cn"

},

...

]

字段名跟配置的名称都能对应起来,则映射的信息才能准确的填充到自定义对象中。允许查询到的字段有缺失,譬如返回结果不包含“user_id”,那么生成的自定义数据对应的属性则会为空值。

查询数据到自定义数据时,流程、参数和查询数据的方式一样,唯一不同的是加入了映射信息和传递自定义数据变量。

查询到自定义数组:

.版本 2

.局部变量 用户列表, 用户, , "0"

数据库连接.查询到自定义数组 (“SELECT * FROM user AS u LEFT JOIN user_ext AS ue ON ue.user_id = u.user_id”, , “用户”, 用户列表)

查询第一条到自定义数据变量:

.版本 2

.局部变量 用户信息, 用户, ,

数据库连接.查询头条到自定义 (“SELECT * FROM user AS u LEFT JOIN user_ext AS ue ON ue.user_id = u.user_id WHERE u.user_id = 1”, “用户”, 用户信息)

4. 使用数据库分页

使用数据库连接执行查询到分页方法能够返回分页对象。

数据库连接.查询到分页() : ADODB数据库分页

SQL语句:“文本型”。查询数据库的SQL语句。

分页大小:“整数型”,可以被省略。获取时每页数据的条数。如果为空或者小于1则默认为30。

取数量SQL语句:“文本型”,可以被省略。数据库驱动中不少类型的数据库游标在ADO中都无法取到实际数量,所以可能需要额外提供取数量的SQL语句。如果ADO使用的数据库驱动不支持取数量时,没有设置当前参数,则对象会自动运算总数,效率会低一些。

分页对象不是所有的数据库驱动都支持使用游标查询,所以针对不支持游标的数据库,建议手动编写 取数量SQL 参数,以减少分页对象在获取数据记录数量时的效率损耗。

分页对象会保留连接,所以建议取到数据后,执行 关闭() 方法。

ADODB数据库分页

ADO数据库分页对象。本对象复制无效。注意:如果后续逻辑复杂,请在取到所有需要的数据后执行关闭()命令释放资源再处理您接下来的业务逻辑。

取数量() : 整数型

获取全部查询到的数据的总数。

取分页总数() : 整数型

获取总分页数。

取分页大小() : 整数型

获取每页数据的条数。

取分页数据() : 存取列表

取指定页的数据,返回分页数据列表。

分页位置:“整数型”,可以被省略。指定获取数据的页面位置,如果为空或者小于1则默认为1。

取分页数据到数组() : 整数型

取指定页的数据并转换到指定类型的自定义数据数组,返回数据条数。

分页位置:“整数型”,可以被省略。指定获取数据的页面位置,如果为空或者小于1则默认为1。

映射名称:“文本型”。在对象映射中心配置的名称。

自定义数组变量:“通用型”,提供参数数据时只能提供变量数组。将对象映射到的自定义数组。

取分页数据到模板格式() : 整数型

取指定页的数据,返回分页数据列表,并且自动组装成统一的模板用数据格式。

分页位置:“整数型”,可以被省略。指定获取数据的页面位置,如果为空或者小于1则默认为1。

关闭() : 逻辑型

关闭当前分页对象,关闭后会自动释放所有相关资源。

e2ee连接mysql数据库_E2EE应用服务器套件 - 文档 - [高级功能] 使用数据库连接池 - E2EE易语言网站敏捷开发框架...相关推荐

  1. 易语言https服务器,E2EE应用服务器套件 - 文档 - [基础教程] 使用HTTPS(SSL) - E2EE易语言网站敏捷开发框架...

    使用HTTPS(SSL) 1.申请证书 首先您需要申请SSL/TLS证书. 介绍几个免费SSL证书申请网站: 申请证书的方式网上有很多相关资料,这里就不多做说明了. 申请证书后通常会有以下三个文件: ...

  2. java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目架构 ...

  3. java计算机毕业设计智能旅游电子票务系统演示录像2020源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计智能旅游电子票务系统演示录像2020源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智能旅游电子票务系统演示录像2020源码+mysql数据库+系统+部署+l ...

  4. java计算机毕业设计智慧门诊综合管理系统源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计智慧门诊综合管理系统源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智慧门诊综合管理系统源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目架构 ...

  5. java计算机毕业设计智慧校园学生选宿系统源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计智慧校园学生选宿系统源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智慧校园学生选宿系统源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目架构 ...

  6. java计算机毕业设计智能医技预约系统源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计智能医技预约系统源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智能医技预约系统源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目架构:B/S ...

  7. java计算机毕业设计中医药科普网站源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计中医药科普网站源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计中医药科普网站源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目架构:B/S架构 ...

  8. java计算机毕业设计中小企业人力资源管理系统源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计中小企业人力资源管理系统源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计中小企业人力资源管理系统源码+mysql数据库+系统+部署+lw文档 本源码技术栈: ...

  9. java计算机毕业设计自动评测系统源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计自动评测系统源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计自动评测系统源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目架构:B/S架构 开 ...

最新文章

  1. LeetCode简单题之自除数
  2. AI应用开发基础傻瓜书系列3-激活函数和损失函数
  3. Keras-8 Predicting house prices: a regression example
  4. C# 重绘tabControl,添加关闭按钮(页签)
  5. BackTrack4——利用***测试保证系统安全
  6. 超级搜索术3-吸收应用/一键直达
  7. Firefox中强制复制粘贴的插件
  8. 三相PWM整流器dq解耦控制
  9. 前端学习之路Electron——全局注册、注销快捷键
  10. 如果你现在没有目标,或许很迷茫
  11. VM虚拟机安装WindowsXp_SP3全过程
  12. 计算机系统故障如何处理,安装操作系统出错怎么办?几种常见的异常处理方法介绍(图文)...
  13. 如何成为一个原画场景大师
  14. 百度AI市场热品试用 | 视派尔近红外活体识别双目摄像头模组
  15. 数据结构常用的七种排序算法总结
  16. LAMPSECURITY: CTF8-20220522
  17. 重学计算机网络(三) - DHCP IP的孽缘
  18. VirtualBox 导入centos8 voa镜像无GNOME GUI界面问题解决
  19. P1498 南蛮图腾 题解
  20. 指南-示例-luat示例-camera

热门文章

  1. Webug4.0 越权修改密码
  2. 2012数学复习全书【数学一】-李正元、李永乐【习题全解】
  3. python函数手册 stata_Python 与 Stata 配合批量转换数据
  4. CAN log之blf/vsb/asc/trc
  5. 采用simulink构建AWGN信道中分组码的BPSK数字通信系统
  6. android源码里嵌入蒙古文字体
  7. java Eclipes配置黑色框架
  8. Eclipes安装反编译插件
  9. VoIP网络电话回音产生的原因分析
  10. 前端项目中常用的轮子,提升开发效率