CMS管理系统_sql语句后拼接条件

这篇博客探讨了在Java中如何实现SQL语句的条件拼接,特别是在模糊查询和精确查询中的应用。作者通过`ParamCond`类展示了如何根据不同的参数值动态添加WHERE子句,包括模糊匹配和精确匹配,并解释了为何在更新操作中需要排除当前正在修改的记录。此外,文章提到了在页面表单中传递主键ID以避免在查询重复参数键时出现误判的问题,确保了更新操作的准确性。
摘要由CSDN通过智能技术生成

第一次写博客,加油!!!

sql语句后拼接条件

public class ParamCond extends BaseCondition {

	private String id_c;// 主键
	private String name_c;// 参数名称
	private String param_key_c;// 参数键--糊模
	private String param_key_v;// 参数键--精确
	private String param_value_c;// 参数值
	private String remark_c;// 备注

public void addCondition() {
		add(name_c, "and name like ?", 3); //1
		add(param_key_c, "and param_key like ?", 3);//2
		add(param_key_v, "and param_key = ?");//3
		add(param_value_c, "and param_value like ?", 3);//4
		
		add(id_c, "and id <> ?");//5
}

protected void add(String value, String strSQL, int pos) {
		if (null != strSQL && null != value && !"".equals(strSQL) && !"".equals(value)) {
			condition.append(" " + strSQL);
			if (pos == 1) {
				paramList.add("%" + value);
			} else if (pos == 2) {
				paramList.add(value + "%");
			} else if (pos == 3) {
				paramList.add("%" + value + "%");
			}
		}
	}
  1. 这里的addCondition为在字符串后面拼接条件的方法,上面1和2的add方法为拼接模糊查询sql语句的方法,在方法中新增一个参数(int pos),pos取值不同时,"%"的位置也不同。
  2. 3号add方法为按param_key字段值精确查询,这里为了不与2号add方法(按param_key字段值模糊查询)混淆,在该条件类中除了param_key_c以外还新增了一个param_key_v属性。
  3. 4号add方法为在sql语句where后拼接 id!=?的方法,该模块业务中,没有安装主键id值进行CRUD的操作,这里是为了在修改(update)系统参数时,在满足param_key不重复的情况下,忽略掉当前正在修改的记录。
    在这里插入图片描述
    因为需要先判断页面中填入的参数键是否重复,再更新数据库中的记录。可是当我们不修改当前记录的参数键时,在安装参数键查询数据库中的记录数时得出的结果count始终会>=1,这里就需要在跳转到修改系统参数页面时,将当前记录的主键id值放入页面中,如下:
<form:form name="form1" id="form1" method="post" modelAttribute="param" >
		<form:input path="id"  /> 

再在拼接按参数键查询查询数据库中记录的sql语句时,传入这个id值(也就是最上面的4号add方法),即 where param_key=? and id !=?。以此来排除当前正在操作的记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值