基于Freemarker动态SQL构造工具

阅读更多

一.目的

将sql语句编写的xml中,然后在java代码中,传入参数,经过freemarker处理,得到处理完的SQL. 好处:

  • sql编写在xml中,便于阅读
  • 可以使用freemarker语法,动态构建SQL
  • 可以使用freemarker的include语句,提取公用SQL

 

 

 

三.使用指南

 

maven

 

        com.duowan.common
        duowan-common-util
        1.0.11       

 

spring配置

 

        
        
                
                                
                
        
        
        
    
        
                
                        
                                classpath*:/freemarker_sql/**/*.xml
                        
                
    

 

xml配置中编写SQL

user.xml





        
                                delete from user where id=:id
                ]]>
        
        
        
                                select * from user
                <#include "userWhere">
                ]]>
        
        
        
                                1=1
                ]]>
        
        

 

java代码

 

 

        @Test
        public void test() throws IOException, TemplateException {
                Map model = new HashMap();
                model.put("name", "badqiu");
                model.put("sex", 1);
                model.put("age", 100);
                
                ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-freemarker-sql.xml");
                Configuration conf = (Configuration)ac.getBean("sqlFreeMarkerConfiguration");
                String sql = FreeMarkerTemplateUtils.processTemplateIntoString(conf.getTemplate("user.select"), model);
                System.out.println(sql);
        }

你可能感兴趣的:(基于Freemarker动态SQL构造工具)