Java中数据库实现多条件查询(条件是不确定的,可以是一个,两个,三个,四个,五个)!

Java中数据库实现多条件查询(条件是不确定的,可以是一个,两个,三个,四个,五个)!,第1张

你这样做输出SS语句调试看看,你会发现你输出的SQL语句有问题!

String ss="SELETE * FROM MESSAGE WHERE"

int i=1char 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)

可以这样:根据判断传入参数是否为空格或null来判断是否有这个查询条件,来拼凑出不同的sql语句,例如

StringBuffer sb = new StringBuffer()

sb.append("select * from a where 1=1")

if(!"".equals("a") || null != a){

sb.append(" and a = " + a)

}

就像这样来根据不同条件查询

我这里有个现成的数据库连接类

先配个数据源

import java.sql.*

public class DB{

Connection con

Statement stt

private void begin()

{

if(con!=null||stt!=null)

{

this.closs()

}

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

con = DriverManager.getConnection("jdbc:odbc:数据源名")

stt = con.createStatement()

}

public Resultset qu(String sql)

{

this.begin()

return stt.executeQuery(sql)

}

public boolean cun(String sql)

{

this.begin()

return stt.execute(sql)

}

public void closs()

{

stt.close()

con.close()

}

}

要用的时候 DB a = new DB()

a.qu("select * from 你的表名 where 你表中书名的那一列的列名 like '%书名%'")

%是通配符 就是说如果书名是"12ab45" 你输入"ab 也能查询到" 如果不需要可以去掉%

a.qu()

返回一个ResultSet

你可以创建一个数组

String[][] b = new String[返回的Result的条数][JTable中需要显示的列数量]

用new JTable(String[][],String[])的方法来构造这个表吧


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9620164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存