# orange
**Repository Path**: captain-duan/orange
## Basic Information
- **Project Name**: orange
- **Description**: 动态sql解析引擎,类似mybatis动态sql的功能
- **Primary Language**: Java
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 60
- **Created**: 2022-12-06
- **Last Updated**: 2022-12-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 概述
- orange是一个动态sql引擎,类似mybatis的功能,解析带标签的动态sql,生成?占位符的sql和?对应的参数列表。
- 借鉴了mybatis源码,相当于mybatis中的动态sql解析功能的抽取。
- 支持 if foreach where set trim
# 使用教程
- 在自己的maven项目中引入maven坐标
```xml
io.github.freakchick
orange
1.0
```
- 核心api
```
DynamicSqlEngine engine = new DynamicSqlEngine();
SqlMeta sqlMeta = engine.parse(sql, map);
```
- 示例
```
@Test
public void testForeach() {
DynamicSqlEngine engine = new DynamicSqlEngine();
String sql = ("select * from user where name in #{item.name}");
Map map = new HashMap<>();
ArrayList arrayList = new ArrayList<>();
arrayList.add(new User(10, "tom"));
arrayList.add(new User(11, "jerry"));
map.put("list", arrayList);
SqlMeta sqlMeta = engine.parse(sql, map);
System.out.println(sqlMeta.getSql());
sqlMeta.getJdbcParamValues().forEach(System.out::println);
}
```
- 示例执行结果:
```
select * from user where name in ( ? , ? )
tom
jerry
```
# 联系作者:
## wechat:
- 提问前麻烦请先star支持一下
## 捐赠:
如果您喜欢此项目,请给作者加鸡腿