sql语句中where 1=1 的用法

(一)where 1=1的用法

在写项目中需要建立一个动态的sql,这时可以使用where 1=1.

实例:

  1.   String sql=”select name,age from usertable where”;//这里我们没有加where 1=1 
  2.  if(!"".equals(user.getName())&&user.getName()!=null){ //这是表示用户的名字不为null就在sql中添加name条件
  3.    sql=sql+“name='“+user.getName().trim()+"'";  //注意sql查询语句,对于字符串要加上单引号,即name=‘xiaoming’,不要落下单引号
  4.  }  
  5.  if(!"".equals(user.getAge())&&user.getAge()!=null){  
  6.    sql=sql+“and age='“+user.getAge().trim()+"'";  
  7.  }  

实例说明:
1、要注意Object的equals()方法容易抛出空指针异常。应该使用常量或者有确定值的对象来调用equals()方法。比如:"".equals(user.getAge())


   
   
   
   

上面的sql语句我们没有添加where 1=1,当两个if语句都不成立时,sql=select name,age from usertable where 显然这样的查询语句会报错。因此,该语句就是一条错误的语句,肯定不能被执行,不仅报错,同时还不会查询到任何数据。


当我们加上where 1=1 时,表示where 1=1 条件始终成立(为true)。sql语句在两个if语句不成立时,sql=select name,age from usertable where 1=1,因此,该条语句语法正确,能够被正确执行,它的作用相当于:sql=select name,age from usertable ,即返回表中所需数据。


(二)where 1=0的用法

where 1=0;该条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表

"SELECT * FROM strName WHERE 1 = 0"; 该select语句主要用于读取表的结构而不考虑表中的数据,这样节省了内存,因为可以不用保存结果集。

create table newtable as select * from oldtable where 1=0; 创建一个新表,而新表的结构与查询的表的结构是一样的。

(三)String类的常用方法


1、equalsIgnoreCase(String anotherString):将此 String 与另一个 String 比较,不考虑大小写。

2、trim(): 返回字符串的副本,忽略前导空白和尾部空白。

3、toUpperCase():使用默认语言环境的规则将此 String 中的所有字符都转换为大写。

4、substring(int beginIndex, int endIndex): 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。(字符串的序号是从0开始)

5、split(String regex, int limit) : 根据匹配给定的正则表达式来拆分此字符串。其中limit可以省略。其中当limit<0时,那么模式将被应用尽可能多的次数。返回一个数组
例如:字符串 "boo:and:foo" 使用这些参数可生成以下结果:
RegexLimit结果
:2{ "boo", "and:foo" }
:5{ "boo", "and", "foo" }
:-2{ "boo", "and", "foo" }

6、 contains ( CharSequence  s):当且仅当此字符串包含指定的char值序列时,返回true。
7、toUpperCase():使用默认语言环境的规则将此字符串所有字符都转化为大写

equalsIgnoreCase(String anotherString)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位远方的诗人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值