# SqlTemplate
**Repository Path**: Curare/SqlTemplate
## Basic Information
- **Project Name**: SqlTemplate
- **Description**: 从GitHub镜像过来的项目。
该项目主要:可以通过自己传递 sql 代码进行对数据库的操作。支持mybatis语法和sql语法
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-08-16
- **Last Updated**: 2024-08-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
SqlTemplate
===========
SqlTemplate 是sql模板引擎,主要解决动态拼接sql字符串 。原理是比较简单,把模板内容构建成完成的xml,这样可以解析成相关的数据结构,
再结合Ognl强大表达式计算条件。设计上参考了MyBatis动态sql部分,为了减少学习成本,兼容Mybatis大部分用法。目前能支持以下标签:
- if
- choose (when, otherwise)
- trim , where, set
- foreach
详细用法,请参考[MyBatis](http://mybatis.github.io/mybatis-3/dynamic-sql.html)
例1:动态查询
SqlTemplateEngin sqlTemplateEngin = new SqlTemplateEngin();
String sqlTpl = "select * from user_info and username = #{username} and email = #{email} ";
//从字符串读取sql模板内容,还可以从单独的文件读取
SqlTemplate sqlTemplate = sqlTemplateEngin.getSqlTemplate(sqlTpl) ;
Bindings bind = new Bindings().bind("email", "wenzuojing@gmail.com");
SqlMeta sqlMeta = sqlTemplate.process(bind) ; //可传map对象或javabean对象
//System.out.println(sqlMeta.getSql());
Assert.assertEquals("select * from user_info WHERE email = ? ", sqlMeta.getSql());
List