java连接数据库多条查询_请求支援:java 连接数据库如何实现多条件并列查询?...

请求支援:java 连接数据库如何实现多条件并列查询?

关注:168  答案:4  mip版

解决时间 2021-02-07 17:28

e6cb1a03ad541b3098697807b7bf1798.png

提问者等妳¬硪唯一鍀执念

2021-02-07 14:13

条件可以有很多,也可以只有一条,但是sql语句都可以执行

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

二级知识专家千里故人稀

2021-02-07 15:50

JDK5.0新特性,可变参数。可变参数使程序员可以声明一个接受可变数目参数的方法。

注意,可变参数必须是方法声明中的最后一个参数,语法是类型后面加上三个点,比如 int... nums

这就是说,方法需要接收参数是int类型的,到底是几个参数,不知道,可以没有,可以多个,爱写几个写几个,不写拉到。

下面我写了个例子,方法getSentence(String... str)就是,内部还是字符串拼接,最后返回一个字符串,你连接数据库查询的时候,就拿这个字符串查不就行了么,具体自己改一改吧。

public class TestJDBC2 {

public static void main(String[] args) {

System.out.println(getSentence());

System.out.println(getSentence("eid = 1"));

System.out.println(getSentence("eid = 1111", "ename = okok"));

}

public static String getSentence(String... str) {

String s1 = "select * from emp";

String s2 = "select * from emp where ";

if(str.length == 0) {

return s1;

}

else {

for(int i=0; i

s2 += str[i];

if(i != str.length-1) {

s2 += " and ";

}

}

return s2;

}

}

执行以后输出内容如图:

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

1楼繁华初下,心已空

2021-02-07 18:24

拼接SQL,依靠StringBuffer 这个动态字符串来完成sql语句

StringBuffer buffer=new StringBuffer("select * from 表 where 1=1 ");

if(条件1满足){

buffer.append(" and 条件1")

}

if(条件2满足){

buffer.append(" and 条件2")

}

如此类推~

其实方法很多,关键要靠你自己去活用!

e6cb1a03ad541b3098697807b7bf1798.png

2楼薯片软妹

2021-02-07 17:45

string sql = "select carid,type_id,carno, engineno,buyinsuretime,audittime,buydate,status,file_id,cardesc from car where type_id = " + type_id;

string temp = "";

if (!stringutils.isempty(carno)) {

temp += " and carno like '%" + carno + "%' ";

}

if(!stringutils.isempty(engineno))

{

temp += " and engineno like '%"+engineno + "%' ";

}

if(!stringutils.isempty(buydate))

{

temp += " and buydate = date('"+buydate + "') ";

}

if(!stringutils.isempty(status))

{

temp += " and status=" + status+ " ";

}

sql = sql + temp + " order by carid desc ";

这是多条件的例子,可以参考一下

e6cb1a03ad541b3098697807b7bf1798.png

3楼久溺深海心會寒

2021-02-07 16:13

StringBuffer sql = new StringBuffer("select * from tanlename where 1=1");

//判断获取年龄条件是否为空或者为null

if(from.getage!=null&&!"".equals(from.getage))

{

如果有条件 sql 拼接

sql.append("and age="+from.getage);

}

一次类推判断第二个

else if(from.getsex!=null&&!"".equals(from.getsex))

{

在次拼接

sql.append("and sex="+from.getsex);

}

有多少就判断多少 就OK了

````````````

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值