查看: 33|回复: 0

给各位聚聚和大大介绍一个开源项目 Expression2Sql(二)

发表于 2017-8-26 08:00:00

前一阵子给大家介绍了一个可以将Expression表达式树解析成Transact-SQL的开源项目Expression2Sql。

简单易用,几分钟即可上手使用,因为博主在设计Expression2Sql的时候就尽可能的按照Transact-SQL的语法语义风格来设计,只要调用者熟悉基本的Transact-SQL语法即可瞬间无忧开码,大大降低了学习Expression2Sql的成本,甚至零成本。对象化操作,链式编程,任意组装sql,自动生成表别名,参数化赋值,防止sql注入,支持SQLServer、MySQL、Oracle、SQLite等多数据库,生成极度美观的sql字符串(格式化)等诸多优点。

具体详情可以前往此篇博文一探究竟:

《给各位聚聚和大大介绍一个开源项目 Expression2Sql》

Expression2Sql源码托管地址: https://github.com/StrangeCity/Expression2Sql

诸多开源项目收录: http://www.cnblogs.com/StrangeCity/p/OpenSourceProject.html


之后得到了广大读者的一些好评,也使得博主更有动力继续更新下去,然后一些园友也给出了一些极具建设性的意见,也有部分园友反馈了一些bug。最近一段时间,博主也集中精力,抽出一些时间做了一次更新,本篇文章将介绍本次更 新的内容 。

一、在做形参赋值时报错,现已解决。

二、对于括号优先级的处理,现已支持。

三、增加Insert方法

四、提供静态类和实例类的两种调用方式

Expression2Sql组件的核心对象ExpressionToSql是实例类,调用的时候还得对象实例化,然后通过构造函数注入数据库sql语法分析器。但是博主考虑到很多时候,工作或学习当中,一般单数据库类型居多,所以使用静态类来调用,会非常的方便快捷。于是博主抛砖引玉,封装了基于SQLServer、MySQL、Oracle、SQLite数据库的的静态类。当然调用方可以借鉴这些静态类,自行封装这4种常用数据库之外的静态类。

  1. 1 ExpressionToSql<UserInfo> userInfoSql = new ExpressionToSql<UserInfo>(new MySQLSqlParser());
  2. 2 Printf(
  3. 3 userInfoSql.Select().Where(u => u.Id != 1),
  4. 4 "查询单表,带where条件,实例类"
  5. 5 );
  6. 6
  7. 7
  8. 8 Printf(
  9. 9 ExpressionToSqlSQLServer.Select<UserInfo>().
  10. 10 Where(u => u.Name == "张三"),
  11. 11 "SQLServer静态类"
  12. 12 );
复制代码

来自: http://www.cnblogs.com/StrangeCity/p/5142560.html

扩展阅读 如何编写一个分布式数据库
PostgreSQL vs. MS SQL Server
开源大数据处理工具汇总(上)
开源大数据处理系统/工具大全
Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们
为您推荐前端面试问题(二)-史上最全 前端开发面试问题及答案整理
一些基础的前端技术面试问题
HTML+AngularJS+Groovy如何实现登录功能
SpringMVC 清晰简单教程
史上最全 前端开发面试问题及答案整理
更多开源
SQL


回复

使用道具 举报