Skip to content

hjh1126123/LazySQL

Repository files navigation

该项目可能短期内不再填坑了(虽然star只有个位数),一来是因为工作繁忙,第二是我自己对这个框架的实用度表示怀疑,因为市面上有很多成熟优秀的orm框架,如ef、sqlsugar、dapper等等。
我原本开发这款框架就是希望制作一款能够有原生sql语言开发体验的orm框架(载体使用xml),想抛弃掉linq(因为市面上的orm框架基本上都在用linq进行sql语句组装并且如果对框架使用经验不足的话,可能会使用linq语句生成奇怪的sql语句,导致数据操作bug,届时又要转换成sql语句来寻找问题,还挺麻烦)。
但实际情况是,工作几年以来,熟练linq的人其实很多,反而还记得原生sql语言的并不多,这导致我开发这个框架有点本末倒置了(主要还是因为开发该框架的期间,本人待的公司仍然在用ado组件,也就是sql语言拼接的方式进行数据库操作),何况我近段时间想转型前端。不过还是把这个框架挂在github,留个纪念,顺便给想开发orm框架玩玩的人给予一定参考。

LazySQL

Api文档在做了,在做了..(新建文件夹)

主要作用

LazySQL并不是简单的helper

如果是这样,它将不能让效率与便捷并存,它是一款类似ef或dapper的orm框架

它极大的简化了DAL层的代码容量

一段sql,然后在需要传参的位置进行标记,如:select * from tb where 1 = 1 {0},那就可以在{0}处,导入任何参数,无需再去判断 if(xxxxx == string.empty),这些框架都帮你做好了。

它的工作原理

lazySql读取对应的xml文档,然后根据xml文档编写的内容使用CodeDom生成对应代码,最后编译代码并存储于内存当中

它的运行效率

它只会在sql操作的环节才会出现效率问题,也就是说,你的sql写的不够好,数据量过大,没做好索引等等数据库方面出现问题,效率才会

当前版本 V2.0 beta

版本特性

  • 无配置
  • 使用简单
  • 连接池
  • 多池支持
  • 参数化查询
  • 事务
  • 线程安全
  • 插槽式设计
  • SQLLite支持
  • MSSQL支持
  • MYSQL支持[building...]

不建议

任何orm框架共同的问题,不要重复初始化该库,因为他在第一次执行的时候,它将会执行如下操作:
  • 生成连接池
  • 根据XML自动创建代码
  • 编译代码
  • 存入内存

通常时间不会超过3秒,但依然是不舒服的体验

注意点

  • 在AddConnection的时候,将会生成连接池

  • 在BuildMethod的时候,将会自动生成代码以及编译代码并存入内存

上述操作建议单次执行

快速开始

项目是用VS2017创建,请用VS2017打开(VS工程向下不兼容),使用框架为.net framework 4.5

调试Example/SimpleSqlLite

Releases

No releases published

Packages

 
 
 

Languages