读书人

SQL动态打包工具类

发布时间: 2012-11-01 11:11:31 作者: rapoo

SQL动态封装工具类
在项目中直接使用jdbc操作的时候,sql的动态条件拼装一直是个非常头疼的事情,前一阵子研究ibatis,发现他的代码生成工具iBATOR生成的example类实际是个很不错的sql拼装类,于是拿过来修改了下,

使用:

            BaseSelector select = new BaseSelector();            select.setCommand("select  from  user ");            select.createCriteria().andEqualTo("org_code", "YZ1201")            .andGreaterThanOrEqualTo("day_code", "2009-01-01")            .andLessThanOrEqualTo("day_code", "2009-03-31");

调用 select.toSql() 输出:
select  from  user where org_code = 'YZ1201' and day_code >= '2009-01-01' and day_code <= '2009-03-31' 


抛砖引玉,有哪位兄弟有更高的拿来看看啊 /** * 顺序排序 * @param field */ public void setOrderByClauseAsc(String field) { this.orderByClause = getFieldName(field) + " ASC"; } /** * 倒序排序 * @param field */ public void setOrderByClauseDesc(String field) { this.orderByClause = getFieldName(field) + " DESC"; }
建议使用一些生成工具,生成一个数据库字段的static 类



public class AAAA{

public static class Table1{

public static String org_code = "org_code";
...
}

public static class Table2{

...
}

}

最后,写成 createCriteria().andEqualTo(AAAA.Table1.org_code, value)

数据库字段论怎样变,org_code变成 kao,eclipse会向你举起双手说:"LZ,AAAA.Table1.org_code已经从地球上消失了!"
24 楼 mycybyb 2010-01-15 呵呵,前几天同事问问题,我就简单给他写了个思路
new Select("select * from user").where(new Condition("col1", EQUAL, "1"))

读书人网 >SQL Server

热点推荐