免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3699 | 回复: 0
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-16 10:23 |只看该作者 |倒序浏览
本帖最后由 feiyang10086 于 2011-02-16 10:25 编辑

转:路过秋天

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



前言:

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

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

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

下面看一下新版本的修改记录
  1. 1:MAction的构造函数允许从MDataRow加载

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

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

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

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

  6. 6:增加对SQLite数据的支持

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

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

  9. 8:提升数据表架构的缓存级别:MDataColumn->MDataRow
复制代码
下面进行详细的解说

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

增加这个原因,是基于 秋色园 应用中,考虑到数据重用的问题,简单解说一下:
  1. 1: 秋色园 缓存了用户的信息,就是一行数据了,OK,那么实际上对所有用户的操作都来自同一张表,于是,可以直接从缓存的Row中取数据表结构进行反填充即可以了。

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

  3. 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都是单个文章方式,因此数据库链接配置方式类似如下:
  1. <appSettings>
  2.         <add key="AccessDbNameForWeb" value="App_Data/myspace.mdb"/>
  3.         <add key="SQLiteDbNameForWeb" value="App_Data/sqlitedemo.db"/>
  4.     </appSettings>
  5.     <connectionStrings>
  6.         <!--<add name="Conn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}" providerName="System.Data.OleDb" />
  7.         <add name="Conn" connectionString="Data Source={0}" providerName="System.Data.SQLite"/>-->
  8.         <add name="Conn" connectionString="server=localhost;port=3309;user id=root;password=123456;database=mysqldemo" providerName="MySql.Data.MySqlClient"/>
  9.         
  10.     </connectionStrings>
复制代码
八:提升数据表架构的缓存级别:MDataColumn->MDataRow

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

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

增加的这个功能是为Ajax应用准备的,应用示例代码:
  1. using (MAction action = new MAction("Blog_User"))
  2.             {
  3.                 action.GetFromJson("{id:2,name:\"秋色园\",url:\"www.cyqdata.com\"}");
  4.                 action.Update();
  5.             }
复制代码
结果就是把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,在基本测试中通过,欢迎大伙在实际应用中若遇到问题欢迎反馈。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP