# orange **Repository Path**: CZJpython/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**: 2025-02-19 - **Last Updated**: 2025-02-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 概述 - orange是一个动态sql引擎,类似mybatis的功能,解析带标签的动态sql,生成?占位符的sql和?对应的参数列表。 - 借鉴了mybatis源码,相当于mybatis中的动态sql解析功能的抽取。 - 支持 if foreach where set trim # 使用教程 - 先拉取源代码,安装到maven本地仓库: ``` mvn -DskipTests=true install ``` - 安装到maven本地仓库后,就可以在自己的maven项目中使用orange了 ``` #pom引入maven坐标 com.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支持一下
## 捐赠: 如果您喜欢此项目,请给作者加鸡腿