CYQ.Data 轻量数据层之路 V4.3 版本发布[增加对SQLite,MySQL数据库的支持]

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

前言:

继上一版本:CYQ.Data 轻量数据层之路 V4.0 版本发布 ,又过去一个来月了,不过也过了一个新年了。

 

由于过年原因,因此框架也没多折腾什么,只是年前年后顺路把SQLite,MySQL两种数据库给支持上了。

 

提示:基于网友的提醒,本次版本发布带CYQ.Data.xml,增加了方法的中文提示。

 

下面看一下新版本的修改记录

复制代码
1:MAction的构造函数允许从MDataRow加载

2:MutilLanguage在设置Cookie时也同时设置语言标识

3:MutilLanguage默认语言取自浏览器语言

4:取消CYQ.Data.SQL.OutPutData类及两个相关枚举TableType|DataBaseType,将[生成枚举|创建分页存储过程|创建日志表]等操作单独移到辅助工具实现

5:取消ProcedureSql,新增SchemaAction来获取表架构数据

6:增加对SQLite数据的支持

9:MAction增加从Json反加载数据填充

7:增加对MySql数据库的支持

8:提升数据表架构的缓存级别:MDataColumn->MDataRow
复制代码

 

 

下面进行详细的解说

 

一:MAction的构造函数允许从MDataRow加载

 

 增加这个原因,是基于 秋色园 应用中,考虑到数据重用的问题,简单解说一下:

1: 秋色园 缓存了用户的信息,就是一行数据了,OK,那么实际上对所有用户的操作都来自同一张表,于是,可以直接从缓存的Row中取数据表结构进行反填充即可以了。

由于数据表结构本身就有缓存,所以上面的填充效果,简单的看是不太明显的。

2:当用户编辑自己资料时,当独的数据行无法进行操作,因此时候填充,可以迅速转成可操作的MAction,节省一定的开销。

 

二:MutilLanguage在设置Cookie时也同时设置语言标识

三:MutilLanguage默认语言取自浏览器语言

 

在 秋色园 中,多语言应用的是比较广的,因此考虑的因素也是相对较多,包括对用户的浏览器语言判别来显示不同的语言文章,和通过显示的后缀和非后缀等情况做处理,所以小小的需要改动一下。

顺便说一下:CYQ.Data.Xml名称空间下的内容,千万不要放过。

 

四:取消CYQ.Data.SQL.OutPutData类及两个相关枚举TableType|DataBaseType,将[生成枚举|创建分页存储过程|创建日志表]等操作单独移到辅助工具实现
五:取消ProcedureSql,新增SchemaAction来获取表架构数据

 

这两个的调整,主要是为了减轻框架的大小,同时内部类重新优化了一下结构,不影响外围使用。

同时,去掉OutPutData类,意味着一些辅助功能,只能借辅助工具实现,包括生成mssql/oracle的分页存储过程。

 

六:增加对SQLite数据的支持

七:增加对MySql数据库的支持


采用插件式方式加载,如果需要使用,只要把相应的 MySql.Data.dll 或者 System.Data.SQLite.dll  CYQ.Data.dll 放在一起即可。

由于SQLite和Access都是单个文章方式,因此数据库链接配置方式类似如下:

复制代码
< appSettings >
        
< add  key ="AccessDbNameForWeb"  value ="App_Data/myspace.mdb" />
        
< add  key ="SQLiteDbNameForWeb"  value ="App_Data/sqlitedemo.db" />
    
</ appSettings >
    
< connectionStrings >
        
<!-- <add name="Conn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}" providerName="System.Data.OleDb" />
        <add name="Conn" connectionString="Data Source={0}" providerName="System.Data.SQLite"/>
-->
        
< add  name ="Conn"  connectionString ="server=localhost;port=3309;user id=root;password=123456;database=mysqldemo"  providerName ="MySql.Data.MySqlClient" />
        
    
</ connectionStrings >
复制代码

 

八:提升数据表架构的缓存级别:MDataColumn->MDataRow

 

表架构缓存提升了一个级别,理论上性能是提升的,本属内部优化之事。

 

九:MAction增加从Json反加载数据填充

 

增加的这个功能是为Ajax应用准备的,应用示例代码:

复制代码
             using  (MAction action  =   new  MAction( " Blog_User " ))
            {
                action.GetFromJson(
" {id:2,name:\ " 秋色园\ " ,url:\ " www.cyqdata.com\ " } " );
                action.Update();
            }
复制代码

结果就是把id为2的行数据的name和url字段更改为相应的数据。

 

十:V4.3 框架下载

 

下载地址:下载中心-秋色园

PS:由于新增加数据库,相应的辅助工具V4.3版本也同时提供下载。 

 

十一:CYQ.Data框架项目案例

 

网址:http://www.cyqdata.com/cyqdata/article-cate-81

 

欢迎大伙继续提供CYQ.Data框架项目案例

 

后言:

复制代码
到本版本为止,支持的数据库类型为:Access / MSSQL[ 2000 / 2005 / 2008 ] / Oracle / SQLite / MySQL

其中Access
/ MSSQL两个系列在大量的项目应用中应用过后,已相当的稳定。

对于Oracle,在测试中通过,已有兄台在实际应用项目中应用,静待发布项目案例的那天。

对于SQLite和MySQL,在测试中通过,欢迎大伙在实际应用中若遇到问题欢迎反馈。
复制代码

 

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2011/02/15/1955025.html

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
52
分享
相关文章
【YashanDB知识库】MySQL迁移至崖山char类型数据自动补空格问题
**简介**:在MySQL迁移到崖山环境时,若字段类型为char(2),而应用存储的数据仅为&#39;0&#39;或&#39;1&#39;,查询时崖山会自动补空格。原因是mysql的sql_mode可能启用了PAD_CHAR_TO_FULL_LENGTH模式,导致保留CHAR类型尾随空格。解决方法是与应用确认数据需求,可将崖山环境中的char类型改为varchar类型以规避补空格问题,适用于所有版本。
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
本文探讨了在使用YMP 23.2.1.3迁移MySQL Server字符集为latin1的中文数据至YashanDB时出现乱码的问题。问题根源在于MySQL latin1字符集存放的是实际utf8编码的数据,而YMP尚未支持此类场景。文章提供了两种解决方法:一是通过DBeaver直接迁移表数据;二是将MySQL表数据转换为Insert语句后手动插入YashanDB。同时指出,这两种方法适合单张表迁移,多表迁移可能存在兼容性问题,建议对问题表单独处理。
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
Redis和Mysql如何保证数据⼀致?
1. 先更新Mysql,再更新Redis,如果更新Redis失败,可能仍然不⼀致 2. 先删除Redis缓存数据,再更新Mysql,再次查询的时候在将数据添加到缓存中 这种⽅案能解决1 ⽅案的问题,但是在⾼并发下性能较低,⽽且仍然会出现数据不⼀致的问题,⽐如线程1删除了 Redis缓存数据,正在更新Mysql,此时另外⼀个查询再查询,那么就会把Mysql中⽼数据⼜查到 Redis中 1. 使用MQ异步同步, 保证数据的最终一致性 我们项目中会根据业务情况 , 使用不同的方案来解决Redis和Mysql的一致性问题 : 1. 对于一些一致性要求不高的场景 , 不做处理例如 : 用户行为数据 ,
SpringBoot 通过集成 Flink CDC 来实时追踪 MySql 数据变动
通过详细的步骤和示例代码,您可以在 SpringBoot 项目中成功集成 Flink CDC,并实时追踪 MySQL 数据库的变动。
431 43
MySQL底层概述—4.InnoDB数据文件
本文介绍了InnoDB表空间文件结构及其组成部分,包括表空间、段、区、页和行。表空间是最高逻辑层,包含多个段;段由若干个区组成,每个区包含64个连续的页,页用于存储多条行记录。文章还详细解析了Page结构,分为通用部分(文件头与文件尾)、数据记录部分和页目录部分。此外,文中探讨了行记录格式,包括四种行格式(Redundant、Compact、Dynamic和Compressed),重点介绍了Compact行记录格式及其溢出机制。最后,文章解释了不同行格式的特点及应用场景,帮助理解InnoDB存储引擎的工作原理。
MySQL底层概述—4.InnoDB数据文件
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
73 9
MySQL和SQLSugar百万条数据查询分页优化
在面对百万条数据的查询时,优化MySQL和SQLSugar的分页性能是非常重要的。通过合理使用索引、调整查询语句、使用缓存以及采用高效的分页策略,可以显著提高查询效率。本文介绍的技巧和方法,可以为开发人员在数据处理和查询优化中提供有效的指导,提升系统的性能和用户体验。掌握这些技巧后,您可以在处理海量数据时更加游刃有余。
189 9
vb6读取mysql,用odbc mysql 5.3版本驱动
通过以上步骤,您可以在VB6中使用ODBC MySQL 5.3驱动连接MySQL数据库并读取数据。配置ODBC数据源、编写VB6代码
81 32
MySQL进阶突击系列(09)数据磁盘存储模型 | 一行数据怎么存?
文中详细介绍了MySQL数据库中一行数据在磁盘上的存储机制,包括表空间、段、区、页和行的具体结构,以及如何设计和优化行数据存储以提高性能。
【YashanDB 知识库】MySQL 迁移至崖山 char 类型数据自动补空格问题
问题分类】功能使用 【关键字】char,char(1) 【问题描述】MySQL 迁移至崖山环境,字段类型源端和目标端都为 char(2),但应用存储的数据为'0'、'1',此时崖山查询该表字段时会自动补充空格 【问题原因分析】mysql 有 sql_mode 控制,检查是否启用了 PAD_CHAR_TO_FULL_LENGTH SQL 模式。如果启用了这个模式,MySQL 才会保留 CHAR 类型字段的尾随空格,默认没有启动。 #查看sql_mode mysql> SHOW VARIABLES LIKE 'sql_mode'; 【解决/规避方法】与应用确认存储的数据,正确定义数据
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等