xml配置SQL语句

现在很多软件都直接使用ORM框架来进行数据库操作,也就此出现代码优先。

ORM框架一个麻烦是效率和复杂查询语句,在有些情况下并不好,而且难以控制生成的SQL.

另外一种则是直接写SQL语句,对于c#来说就是ado.net.

还有类似spring.net的框架,但是遗憾的是配置SQL的库还是有一定封闭性,基本和ORM绑定,或者需要自己操作数据库,没有将生成的SQL语句提供出来,我还没有找到类似的。因此,轮子来了。

 采用XML配置SQL语句,一个语句就是一个Statement节点,携带ID属性,ID标记需要使用的SQL方法,程序将自动反射调用的类名称,方法名称,分别作为xml文件名称和节点名称。然后解析xml;

 xml内部节点被映射成程序方法,主要有Isnotempty映射实体属性为空判断,Dynamic映射我们一般的条件判断,引用了动态linq,

方法的参数映射成SQL的参数。

定义的主要节点:where ,set,choose,when,othersize,witch,case,default,page判断连接

条件节点:IsNotEmpty,Dynamic

类似你会看见:

<Statement Id="Test" >

  select * from  test  where id=@id
  </Statement>

或者扩展

<Statement Id="Test" >

  select * from  test  

<where IsNotEmpty="name">

name=@name

</where>
  </Statement>

 

初步项目:https://github.com/jinyuttt/SmartXmlSql.git

 

 

 

posted @ 2020-03-30 23:51  IT苦行僧  阅读(2622)  评论(0编辑  收藏  举报