From 5fce41dbf24886b6fe2c804d8e5d98c55721c15d Mon Sep 17 00:00:00 2001 From: "xingchuan.qxc" Date: Fri, 21 Feb 2020 19:34:15 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E9=87=8D=E6=9E=84dtd=E7=9A=84=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=89=93=E5=8C=85=E5=90=8E?= =?UTF-8?q?dtd=E6=96=87=E4=BB=B6=E6=B2=A1=E6=9C=89=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E5=88=B0=E5=AF=B9=E5=BA=94=E7=9B=AE=E5=BD=95=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E5=AF=BC=E8=87=B4=E8=BF=90=E8=A1=8C=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 97 +++++++++++++------ .../java/org/wzy/sqltemplate/SqlTemplate.java | 2 +- .../sqltemplate => resources}/script-1.0.dtd | 66 ++++++------- .../org/wzy/sqltemplate/TestTemplate.java | 2 +- 4 files changed, 102 insertions(+), 65 deletions(-) rename src/main/{java/org/wzy/sqltemplate => resources}/script-1.0.dtd (96%) diff --git a/pom.xml b/pom.xml index 55173e8..9fe5a00 100644 --- a/pom.xml +++ b/pom.xml @@ -1,32 +1,69 @@ - 4.0.0 - - org.wzy - sqltemplate - 0.0.1-SNAPSHOT - jar - - sqltemplate - http://maven.apache.org - - - UTF-8 - - - - - junit - junit - 4.11 - test - - - ognl - ognl - 3.0.8 - - - - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + org.wzy + sqltemplate + 0.0.1-SNAPSHOT + jar + + sqltemplate + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 4.11 + test + + + ognl + ognl + 3.0.8 + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + utf-8 + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar + + + + + + + + + + rdc-releases + https://repo.rdc.aliyun.com/repository/82868-release-NNYynv/ + + + rdc-snapshots + https://repo.rdc.aliyun.com/repository/82868-snapshot-fdwmt8/ + + + diff --git a/src/main/java/org/wzy/sqltemplate/SqlTemplate.java b/src/main/java/org/wzy/sqltemplate/SqlTemplate.java index 16c1390..464d09a 100644 --- a/src/main/java/org/wzy/sqltemplate/SqlTemplate.java +++ b/src/main/java/org/wzy/sqltemplate/SqlTemplate.java @@ -176,7 +176,7 @@ private Document buildXml(String templateContent) public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { - return new InputSource(SqlTemplate.class.getResourceAsStream("script-1.0.dtd")); + return new InputSource(SqlTemplate.class.getResourceAsStream("/script-1.0.dtd")); } }); builder.setErrorHandler(new ErrorHandler() { diff --git a/src/main/java/org/wzy/sqltemplate/script-1.0.dtd b/src/main/resources/script-1.0.dtd similarity index 96% rename from src/main/java/org/wzy/sqltemplate/script-1.0.dtd rename to src/main/resources/script-1.0.dtd index 83a03e3..59ea76e 100644 --- a/src/main/java/org/wzy/sqltemplate/script-1.0.dtd +++ b/src/main/resources/script-1.0.dtd @@ -1,34 +1,34 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/java/org/wzy/sqltemplate/TestTemplate.java b/src/test/java/org/wzy/sqltemplate/TestTemplate.java index e423792..1632ead 100644 --- a/src/test/java/org/wzy/sqltemplate/TestTemplate.java +++ b/src/test/java/org/wzy/sqltemplate/TestTemplate.java @@ -26,7 +26,7 @@ public void testIf() { map.put("id", "11"); SqlMeta process = template.process(map); - + System.out.println(process.getSql()); System.out.println(process); } From d7533596198b974c2f2f5aef1329b414cc6df406 Mon Sep 17 00:00:00 2001 From: "xingchuan.qxc" Date: Fri, 21 Feb 2020 19:35:12 +0800 Subject: [PATCH 2/5] =?UTF-8?q?update=20pom.=20=E7=A7=BB=E9=99=A4=E5=85=AC?= =?UTF-8?q?=E7=BD=91=E7=8E=AF=E5=A2=83=E6=97=A0=E7=94=A8=E7=9A=84pom=20rep?= =?UTF-8?q?ository?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/pom.xml b/pom.xml index 9fe5a00..e8f74fc 100644 --- a/pom.xml +++ b/pom.xml @@ -55,15 +55,4 @@ - - - rdc-releases - https://repo.rdc.aliyun.com/repository/82868-release-NNYynv/ - - - rdc-snapshots - https://repo.rdc.aliyun.com/repository/82868-snapshot-fdwmt8/ - - - From 039ba3f070efb0d7ddcc47e691c445a02c0f9eab Mon Sep 17 00:00:00 2001 From: "xingchuan.qxc" Date: Mon, 23 Mar 2020 21:11:05 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=AF=B9=E4=BA=8E=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=B8=B8=E8=A7=81=E7=9A=84?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E6=93=8D=E4=BD=9C=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/wzy/sqltemplate/Context.java | 147 +++++++++--------- .../org/wzy/sqltemplate/utils/CommonUtil.java | 36 +++++ .../org/wzy/sqltemplate/TestTemplate.java | 18 ++- 3 files changed, 126 insertions(+), 75 deletions(-) create mode 100644 src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java diff --git a/src/main/java/org/wzy/sqltemplate/Context.java b/src/main/java/org/wzy/sqltemplate/Context.java index 3dab02a..e10af0b 100644 --- a/src/main/java/org/wzy/sqltemplate/Context.java +++ b/src/main/java/org/wzy/sqltemplate/Context.java @@ -9,110 +9,109 @@ import ognl.OgnlException; import ognl.OgnlRuntime; import ognl.PropertyAccessor; +import org.wzy.sqltemplate.utils.CommonUtil; /** - * * @author Wen - * */ public class Context { - - static { - OgnlRuntime.setPropertyAccessor(HashMap.class, new ContextAccessor()); - } + static { + OgnlRuntime.setPropertyAccessor(HashMap.class, new ContextAccessor()); + } - public static final String BINDING_DATA = "_data"; + public static final String BINDING_DATA = "_data"; - private Configuration cfg; + private Configuration cfg; - private Map binding; + private Map binding; - private StringBuilder sql = new StringBuilder(); + private StringBuilder sql = new StringBuilder(); - private List parameter; + private List parameter; - private int uniqueNumber = 0; + private int uniqueNumber = 0; - public Context(Configuration cfg, Object data) { - this.cfg = cfg; - binding = new HashMap(); - parameter = new ArrayList(); - binding.put(BINDING_DATA, data); - } + public Context(Configuration cfg, Object data) { + this.cfg = cfg; + binding = new HashMap(); + binding.put("util", new CommonUtil()); + parameter = new ArrayList(); + binding.put(BINDING_DATA, data); + } - public void bind(String key, Object value) { - binding.put(key, value); - } + public void bind(String key, Object value) { + binding.put(key, value); + } - public void appendSql(String sqlFragement) { - sql.append(sqlFragement).append(" "); - } + public void appendSql(String sqlFragement) { + sql.append(sqlFragement).append(" "); + } - public Map getBinding() { - return this.binding; - } + public Map getBinding() { + return this.binding; + } - public List getParameter() { - return this.parameter; - } + public List getParameter() { + return this.parameter; + } - public void addParameter(Object parameter) { - this.parameter.add(parameter); - } + public void addParameter(Object parameter) { + this.parameter.add(parameter); + } - public String getSql() { - return sql.toString(); - } + public String getSql() { + return sql.toString(); + } - public void setSql(String sql) { - this.sql = new StringBuilder(sql); - } + public void setSql(String sql) { + this.sql = new StringBuilder(sql); + } - public int getUniqueNumber() { - return ++uniqueNumber; - } + public int getUniqueNumber() { + return ++uniqueNumber; + } - public Configuration getConfiguration() { - return this.cfg; - } + public Configuration getConfiguration() { + return this.cfg; + } - static class ContextAccessor implements PropertyAccessor { + static class ContextAccessor implements PropertyAccessor { - public Object getProperty(Map context, Object target, Object name) - throws OgnlException { - Map map = (Map) target; + public Object getProperty(Map context, Object target, Object name) + throws OgnlException { + Map map = (Map)target; - Object result = map.get(name); - if (result != null) { - return result; - } + Object result = map.get(name); + if (result != null) { + return result; + } - Object parameterObject = map.get(BINDING_DATA); - if (parameterObject instanceof Map) { - return ((Map) parameterObject).get(name); - } + Object parameterObject = map.get(BINDING_DATA); + if (parameterObject instanceof Map) { + return ((Map)parameterObject).get(name); + } - return null; - } + return null; + } - public void setProperty(Map context, Object target, Object name, - Object value) throws OgnlException { - Map map = (Map) target; - map.put(name, value); - } + public void setProperty(Map context, Object target, Object name, + Object value) throws OgnlException { + Map map = (Map)target; + map.put(name, value); + } - public String getSourceAccessor(OgnlContext arg0, Object arg1, - Object arg2) { - // TODO Auto-generated method stub - return null; - } + public String getSourceAccessor(OgnlContext arg0, Object arg1, + Object arg2) { + // TODO Auto-generated method stub + return null; + } - public String getSourceSetter(OgnlContext arg0, Object arg1, Object arg2) { - // TODO Auto-generated method stub - return null; - } + public String getSourceSetter(OgnlContext arg0, Object arg1, Object arg2) { + // TODO Auto-generated method stub + return null; + } - } + } } diff --git a/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java b/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java new file mode 100644 index 0000000..51b52bd --- /dev/null +++ b/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java @@ -0,0 +1,36 @@ +package org.wzy.sqltemplate.utils; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * 便于模板中日期的一些操作 + * + * @author xingchuan.qxc + * @since 2020/03/23 + */ +public class CommonUtil { + + /** + * 通过一个日期的入参,得出N天后的日期 + * + * @param date 格式yyyyMMdd + * @param days 加多少天 + * @return 计算之后的日期,格式yyyyMMdd + */ + public String addDays(String date, int days) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); + try { + Date d = simpleDateFormat.parse(date); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(d); + calendar.add(Calendar.DATE, days); + return simpleDateFormat.format(calendar.getTime()); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + +} diff --git a/src/test/java/org/wzy/sqltemplate/TestTemplate.java b/src/test/java/org/wzy/sqltemplate/TestTemplate.java index 1632ead..10b42ea 100644 --- a/src/test/java/org/wzy/sqltemplate/TestTemplate.java +++ b/src/test/java/org/wzy/sqltemplate/TestTemplate.java @@ -13,13 +13,29 @@ public class TestTemplate { + @Test + public void testTime(){ + Configuration configuration = new Configuration(); + + SqlTemplate template = configuration + .getTemplate("select * from user where id = #{id} T = #{T},T1=#{util.addDays(T,15)}"); + + HashMap map = new HashMap(); + + map.put("id", "11"); + map.put("T","20200322"); + SqlMeta process = template.process(map); + System.out.println(process.getSql()); + System.out.println(process); + } + @Test public void testIf() { Configuration configuration = new Configuration(); SqlTemplate template = configuration - .getTemplate("select * from user where id = #{id} "); + .getTemplate("select * from user where id = #{id} id = #{id-1}"); HashMap map = new HashMap(); From d69353392be71015ec4e6f8602d536338197b2f5 Mon Sep 17 00:00:00 2001 From: "xingchuan.qxc" Date: Tue, 24 Mar 2020 10:25:32 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=97=A5=E6=9C=9F=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++- .../org/wzy/sqltemplate/utils/CommonUtil.java | 39 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e8f74fc..78344aa 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,11 @@ ognl 3.0.8 - + + cn.hutool + hutool-all + 5.0.7 + diff --git a/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java b/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java index 51b52bd..30f9422 100644 --- a/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java +++ b/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java @@ -5,6 +5,9 @@ import java.util.Calendar; import java.util.Date; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; + /** * 便于模板中日期的一些操作 * @@ -33,4 +36,40 @@ public String addDays(String date, int days) { } } + /** + * 给一个指定日期,返回这个日期对应的上一个星期的星期一是哪天 + * @param date 给定的日期 + * @return 指定日期的上一个星期的星期一 + */ + public String getLastWeekMonday(String date){ + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); + try { + Date d = simpleDateFormat.parse(date); + DateTime dateTime = DateUtil.offsetWeek(d,-1); + Calendar calendar = DateUtil.beginOfWeek(dateTime.toCalendar(), true); + Date monday = calendar.getTime(); + return simpleDateFormat.format(monday); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + /** + * 给一个指定日期,返回这个日期对应的上一个星期的星期五是哪天 + * @param date 给定的日期 + * @return 指定日期的上一个星期的星期五 + */ + public String getLastWeekFriday(String date){ + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); + try { + Date d = simpleDateFormat.parse(date); + DateTime dateTime = DateUtil.offsetWeek(d,-1); + Calendar calendar = DateUtil.beginOfWeek(dateTime.toCalendar(), true); + calendar.add(Calendar.DATE,4); + Date friday = calendar.getTime(); + return simpleDateFormat.format(friday); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } } From c5ce592b2277476da6247fbb7f56ed863f470431 Mon Sep 17 00:00:00 2001 From: "xingchuan.qxc" Date: Tue, 24 Mar 2020 20:40:02 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=97=A5=E6=9C=9F=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/wzy/sqltemplate/utils/CommonUtil.java | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java b/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java index 30f9422..c3fa440 100644 --- a/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java +++ b/src/main/java/org/wzy/sqltemplate/utils/CommonUtil.java @@ -36,16 +36,42 @@ public String addDays(String date, int days) { } } + /** + * 给一个指定日期,返回这个日期对应的星期的星期一是哪天 + * + * @param date 给定的日期 + * @return 指定日期所在星期的星期一 + */ + public String getWeekMonday(String date) { + DateTime d = DateUtil.parse(date, "yyyyMMdd"); + Calendar calendar = DateUtil.beginOfWeek(d.toCalendar(), true); + return DateUtil.format(calendar.getTime(), "yyyyMMdd"); + } + + /** + * 给一个指定日期,返回这个日期对应的星期的星期五是哪天 + * + * @param date 给定的日期 + * @return 指定日期所在星期的星期五 + */ + public String getWeekFriday(String date) { + DateTime d = DateUtil.parse(date, "yyyyMMdd"); + Calendar calendar = DateUtil.beginOfWeek(d.toCalendar(), true); + calendar.add(Calendar.DATE, 4); + return DateUtil.format(calendar.getTime(), "yyyyMMdd"); + } + /** * 给一个指定日期,返回这个日期对应的上一个星期的星期一是哪天 + * * @param date 给定的日期 * @return 指定日期的上一个星期的星期一 */ - public String getLastWeekMonday(String date){ + public String getLastWeekMonday(String date) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); try { Date d = simpleDateFormat.parse(date); - DateTime dateTime = DateUtil.offsetWeek(d,-1); + DateTime dateTime = DateUtil.offsetWeek(d, -1); Calendar calendar = DateUtil.beginOfWeek(dateTime.toCalendar(), true); Date monday = calendar.getTime(); return simpleDateFormat.format(monday); @@ -56,16 +82,17 @@ public String getLastWeekMonday(String date){ /** * 给一个指定日期,返回这个日期对应的上一个星期的星期五是哪天 + * * @param date 给定的日期 * @return 指定日期的上一个星期的星期五 */ - public String getLastWeekFriday(String date){ + public String getLastWeekFriday(String date) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); try { Date d = simpleDateFormat.parse(date); - DateTime dateTime = DateUtil.offsetWeek(d,-1); + DateTime dateTime = DateUtil.offsetWeek(d, -1); Calendar calendar = DateUtil.beginOfWeek(dateTime.toCalendar(), true); - calendar.add(Calendar.DATE,4); + calendar.add(Calendar.DATE, 4); Date friday = calendar.getTime(); return simpleDateFormat.format(friday); } catch (ParseException e) {