Java中数据库实现多条件查询(条件是不确定的,可以是一个,两个,三个,四个,五个)! 20
有5个框,每个框都可以输入条件!希望能够实现的是任意一个条件,任意两个条件,任意三个条件,任意四个条件,五个条件都能查找到结果!!以下部分代码:Stringss="SEL...
有5个框,每个框都可以输入条件!希望能够实现的是任意一个条件,任意两个条件,任意三个条件,任意四个条件,五个条件都能查找到结果!!以下部分代码:
String ss="SELETE * FROM MESSAGE WHERE";
int i=1;char c='"';
if(na!=null)
{ss=ss+"AND 姓名='"+na+"'";i=0;}
if(se!="")
{
if(i==0){ss=ss+"AND 性别='"+se+"'";i=0;}
else {ss=ss+"AND 性别='"+se+"'";i=1;}
}
if(xi!="")
{
if(i==0){ss=ss+"AND 系别='"+xi+"'";i=0;}
else {ss=ss+"AND 系别='"+xi+"'";i=1;}
}
if(zh!="")
{
if(i==0){ss=ss+"AND 专业='"+zh+"'";i=0;}
else {ss=ss+"AND 专业='"+zh+"'";i=1;}
}
if(ni!="")
{
if(i==0){ss=ss+"AND 年级='"+ni+"'";}
else {ss=ss+"AND 年级='"+ni+"'";}
}
ss=c+ss+c;
rs=sql.executeQuery(ss);
现在的问题:输入无论是任意一个条件,任意两个条件,任意三个条件,任意四个条件,五个条件后确定,都不能查找到结果。
DOS出现:无效的SQL语句;期待'DELETE'、'INSERT'、'PROCEDURE'、'SELETE'或'UPDATE'
这个问题纠结了很耐,都不能解决!希望有高手尽快能帮我解决,帮我找出问题所在,帮我改写一下代码!!!多谢了!!!! 展开
String ss="SELETE * FROM MESSAGE WHERE";
int i=1;char c='"';
if(na!=null)
{ss=ss+"AND 姓名='"+na+"'";i=0;}
if(se!="")
{
if(i==0){ss=ss+"AND 性别='"+se+"'";i=0;}
else {ss=ss+"AND 性别='"+se+"'";i=1;}
}
if(xi!="")
{
if(i==0){ss=ss+"AND 系别='"+xi+"'";i=0;}
else {ss=ss+"AND 系别='"+xi+"'";i=1;}
}
if(zh!="")
{
if(i==0){ss=ss+"AND 专业='"+zh+"'";i=0;}
else {ss=ss+"AND 专业='"+zh+"'";i=1;}
}
if(ni!="")
{
if(i==0){ss=ss+"AND 年级='"+ni+"'";}
else {ss=ss+"AND 年级='"+ni+"'";}
}
ss=c+ss+c;
rs=sql.executeQuery(ss);
现在的问题:输入无论是任意一个条件,任意两个条件,任意三个条件,任意四个条件,五个条件后确定,都不能查找到结果。
DOS出现:无效的SQL语句;期待'DELETE'、'INSERT'、'PROCEDURE'、'SELETE'或'UPDATE'
这个问题纠结了很耐,都不能解决!希望有高手尽快能帮我解决,帮我找出问题所在,帮我改写一下代码!!!多谢了!!!! 展开
4个回答
展开全部
你这样做输出SS语句调试看看,你会发现你输出的SQL语句有问题!
String ss="SELETE * FROM MESSAGE WHERE";
int i=1;char c='"';
if(na!=null)
{ss=ss+"AND 姓名='"+na+"'";i=0;
System.out.println(ss);
}
if(se!="")
{
if(i==0){ss=ss+"AND 性别='"+se+"'";i=0;}
else {ss=ss+"AND 性别='"+se+"'";i=1;}
}
if(xi!="")
{
if(i==0){ss=ss+"AND 系别='"+xi+"'";i=0;}
else {ss=ss+"AND 系别='"+xi+"'";i=1;}
}
if(zh!="")
{
if(i==0){ss=ss+"AND 专业='"+zh+"'";i=0;}
else {ss=ss+"AND 专业='"+zh+"'";i=1;}
}
if(ni!="")
{
if(i==0){ss=ss+"AND 年级='"+ni+"'";}
else {ss=ss+"AND 年级='"+ni+"'";}
}
ss=c+ss+c;
rs=sql.executeQuery(ss);
就拿第一个SQL语句来做示范,加入你的na值为abc,输出的SS是 SELETE * FROM MESSAGE WHEREAND 姓名= 'abc'
仔细一看就知道SQL语句上很严重的错误 WHERE 后面接了AND关键词
可以这样改:ss=ss+" " + "姓名='"+na+"'" +" " +"AND";
最后使用replaceAll('AND$', ")") 替换最后一个AND字符穿。或者使用字符创截取 去掉最后三个字符(AND)
String ss="SELETE * FROM MESSAGE WHERE";
int i=1;char c='"';
if(na!=null)
{ss=ss+"AND 姓名='"+na+"'";i=0;
System.out.println(ss);
}
if(se!="")
{
if(i==0){ss=ss+"AND 性别='"+se+"'";i=0;}
else {ss=ss+"AND 性别='"+se+"'";i=1;}
}
if(xi!="")
{
if(i==0){ss=ss+"AND 系别='"+xi+"'";i=0;}
else {ss=ss+"AND 系别='"+xi+"'";i=1;}
}
if(zh!="")
{
if(i==0){ss=ss+"AND 专业='"+zh+"'";i=0;}
else {ss=ss+"AND 专业='"+zh+"'";i=1;}
}
if(ni!="")
{
if(i==0){ss=ss+"AND 年级='"+ni+"'";}
else {ss=ss+"AND 年级='"+ni+"'";}
}
ss=c+ss+c;
rs=sql.executeQuery(ss);
就拿第一个SQL语句来做示范,加入你的na值为abc,输出的SS是 SELETE * FROM MESSAGE WHEREAND 姓名= 'abc'
仔细一看就知道SQL语句上很严重的错误 WHERE 后面接了AND关键词
可以这样改:ss=ss+" " + "姓名='"+na+"'" +" " +"AND";
最后使用replaceAll('AND$', ")") 替换最后一个AND字符穿。或者使用字符创截取 去掉最后三个字符(AND)
展开全部
你还在上初中。。这个年龄是学习程序设计的黄金时期。只要你有兴趣。。
入门语言:C++。。。你到书店去买本
《 C++捷径教程》这是老外写的书。。
《C++语言程序设计》 这是清华大学出版的。。比较容易懂。。学习C++不要学太深。除非你对他有很大的兴趣。C++是入门语言,让你有一个编程思想。然后再去学习C#(这是微软力推的语言),或者学习Java(J2se,J2ee,J2Me),Java比较难。还要学习数据库,去买本SQL Server 2005教程吧。。
不要强求自己学习计算机程序设计,完全要靠兴趣,即然选择就不要因为困难而放弃,而是要战胜困难。。
入门语言:C++。。。你到书店去买本
《 C++捷径教程》这是老外写的书。。
《C++语言程序设计》 这是清华大学出版的。。比较容易懂。。学习C++不要学太深。除非你对他有很大的兴趣。C++是入门语言,让你有一个编程思想。然后再去学习C#(这是微软力推的语言),或者学习Java(J2se,J2ee,J2Me),Java比较难。还要学习数据库,去买本SQL Server 2005教程吧。。
不要强求自己学习计算机程序设计,完全要靠兴趣,即然选择就不要因为困难而放弃,而是要战胜困难。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String ss="SELETE * FROM MESSAGE WHERE";
int i=1;char c='"';
if(na!=null)
{ss=ss+"AND 姓名='"+na+"'";i=0;}
if(se!="")
{
if(i==0){ss=ss+"AND 性别='"+se+"'";i=0;}
else {ss=ss+"AND 性别='"+se+"'";i=1;}
}
if(xi!="")
{
if(i==0){ss=ss+"AND 系别='"+xi+"'";i=0;}
else {ss=ss+"AND 系别='"+xi+"'";i=1;}
}
if(zh!="")
{
if(i==0){ss=ss+"AND 专业='"+zh+"'";i=0;}
else {ss=ss+"AND 专业='"+zh+"'";i=1;}
}
if(ni!="")
{
if(i==0){ss=ss+"AND 年级='"+ni+"'";}
else {ss=ss+"AND 年级='"+ni+"'";}
}
ss=c+ss+c;
rs=sql.executeQuery(ss);
int i=1;char c='"';
if(na!=null)
{ss=ss+"AND 姓名='"+na+"'";i=0;}
if(se!="")
{
if(i==0){ss=ss+"AND 性别='"+se+"'";i=0;}
else {ss=ss+"AND 性别='"+se+"'";i=1;}
}
if(xi!="")
{
if(i==0){ss=ss+"AND 系别='"+xi+"'";i=0;}
else {ss=ss+"AND 系别='"+xi+"'";i=1;}
}
if(zh!="")
{
if(i==0){ss=ss+"AND 专业='"+zh+"'";i=0;}
else {ss=ss+"AND 专业='"+zh+"'";i=1;}
}
if(ni!="")
{
if(i==0){ss=ss+"AND 年级='"+ni+"'";}
else {ss=ss+"AND 年级='"+ni+"'";}
}
ss=c+ss+c;
rs=sql.executeQuery(ss);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String ss="SELETE * FROM MESSAGE WHERE 1==1";
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询