java拼接sql_java拼接sql工具类

public classSqlHandle {privateStringBuffer sql;private List list = new ArrayList();publicSqlHandle() {

}publicSqlHandle(String sql) {this.sql = newStringBuffer(sql);

}public staticSqlHandle getInstance(String sql) {return newSqlHandle(sql);

}/***

* @类名称:add

* @类描述:添加条件

*@paramcondition*/

public voidadd(Condition condition) {this.list.add(condition);

}publicString getSql() {return this.sql.append(this.getwhereString()).toString();

}public voidprintSql() {

System.out.println("生成的sql语句:" + this.sql.toString() + this.getwhereString());

}/** 得到where子句,以?为占位符。*/

/***

* @类名称:getwhereString

* @类描述:得到where子句,以?为占位符。通过条件集合中所存储的条件进行and拼接的where子句

* @注意:不能与getwhereOrString同时使用

*@return:拼接好的where子句*/

publicString getwhereString() {

StringBuffer sb= newStringBuffer();if (list.size() <= 0) {return "";

}else{

sb.append(" where 1=1 and");for(Condition item : list) {

sb.append(" " +item.getName());switch(item.getOpertion()) {caseEqual:

sb.append(" = ");break;caseUnEqual:

sb.append(" <> ");break;caseGreatThan:

sb.append(" >= ");break;caseLessThan:

sb.append(" <= ");break;caseLike:

sb.append(" like ");break;

}

sb.append("? and");

}if (sb.toString().endsWith("and")) {

sb.delete(sb.length()- 3, sb.length());

}returnsb.toString();

}

}/***

* @类名称:getwhereOrString

* @类描述:得到where子句,以?为占位符。通过条件集合中所存储的条件进行or拼接的where子句

* @注意:不能与getwhereString同时使用

*@return:拼接好的where子句

* @创建时间2014/4/16*/

publicString getwhereOrString() {

String result= this.getwhereString();return result.replace("and", "or");

}/***

* @类名称:getwhereNotWithWhere

* @类描述:得到where子句,以?为占位符。通过条件集合中所存储的条件进行and拼接的where子句,并且去掉where关键字

* @注意:不能与其他getwhere方法同时使用

*@return:拼接好的where子句,去掉where关键字

* @创建时间2014/4/16*/

publicString getwhereNotWithWhere() {

String result= this.getwhereString();return result.replace(" where ", " ");

}

/***

* @类名称:getwhereValues

* @类描述:通过条件集合中的条件得到与where字句位置对应的object集合。存储所有的值

*@return:*/

publicObject[] getwhereValues() {

Object[] obj= new Object[this.list.size()];for (int i = 0; i < this.list.size(); i++) {

obj[i]= this.list.get(i).getValue();

}returnobj;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值