关于sql语句添加where条件问题,用java语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于sql语句添加where条件问题,用java语句相关的知识,希望对你有一定的参考价值。
在struts框架下,用java语句拼成where的子句,
情况是这样的:
页面上一共有45个不同名称的输入框可能作为where子句条件,要求是如果输入框中输入的值非空并且不是%的情况下,把该输入值作为检索条件,例如:adress对应输入框输入值为A,则在where子句中加入 adress like A 。
但如果一个一个字段分别判断,if语句太多,将使该方法体过于庞大,因为字段名称不同,不能直接应用while循环。
请教高人指点。
我的问题不是如何拼凑where子句,而是如何处理拼凑过程,因为要判断的字段比较多,普通拼凑方法将使方法体过于繁琐庞大,我写了一下,大概400多行/
现在需要的是:如何提高方法的执行效率以及缩小方法体体积。
声明一个字符串变量sql,初始化为where前的sql语句。
声明一个整形变量count,初始化为0;
将从页面得到的信息进行判断,如果为空值则不加到sql后,如果不为空值,则先count++ ,再判断count是否为1,如果是1,那将条件直接加到sql语句之后,如果大于1,那么就在条件之前加"and"。 参考技术A 看看能不能用上正则表达式
那样判断很不错的 参考技术B 这个基本是字符串的组拼而已,很简单的啊
关于SQL语句条件值写中文查不到的问题
在使用jdbc链接MySQL执行SQL语句的时候,sql语句中的where条件,参数值带中文,则查询不到结果,而where条件,参数值都为数字或字母时可以正常查询,
原因是mysql的character_set_connection默认的设置不是utf8,我的解决办法,打开命令行提示符操作界面 登陆MySQL
执行 SET character_set_connection = utf8 ;命令,然后在数据库连接的url中要带字符设置 比如 jdbc:mysql://localhost:3306/goods?useUnicode=true&characterEncoding=UTF-8 ,这样才能解决问题
网上有的方法有,修改Ini文件,试过无效,关于该问题可以参考一下文章 http://www.cnblogs.com/discuss/articles/1862248.html
原文转自:CSDN-博客:@奋斗中的二逼青年
以上是关于关于sql语句添加where条件问题,用java语句的主要内容,如果未能解决你的问题,请参考以下文章