首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL动态打包工具类

2012-11-01 
SQL动态封装工具类在项目中直接使用jdbc操作的时候,sql的动态条件拼装一直是个非常头疼的事情,前一阵子研

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"))

热点排行