SpringSide_2技术分析_Velocity创建动态SQL
这里主要介绍SpringSide使用Velocity+Spring创建动态SQL,有点类似ibatis
参考文件
1. showcase org.springside.examples.showcase.common.dao.UserJdbcDao类里面的
属性 private String searchUserSql;
?
2. showcase applicationContext-jdbc.xml
?
?
<bean id="userJdbcDao" name="code">/** * 使用freemarker创建动态SQL. */public List<User> searchUserByFreemarkerSqlTemplate(Map<String, ?> conditions) {String sql = VelocityUtils.render(searchUserSql, conditions);logger.info(sql);return jdbcTemplate.query(sql, userMapper, conditions);}
VelocityUtils是一个工具类,调用的代码为
VelocityContext velocityContext = new VelocityContext(model);StringWriter result = new StringWriter();Velocity.evaluate(velocityContext, result, "", template);
通俗点讲,就是将xml里面的searchUserSql 和 变量给Velocity模板,然后去渲染,用的是字符串模板,不是文件模板。这个freemarker也可以做到。
freemarker实现 可参考:
http://balaschen.iteye.com/blog/51591
http://www.zhuoda.org/lunzi/102545.html