我這里有個現成的數據庫連接類
成都創新互聯公司自2013年起,先為湟中等服務建站,湟中等地企業,進行企業商務咨詢服務。為湟中企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
先配個數據源
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[])的方法來構造這個表吧
一般多個條件的時候,處理方式是 select * from table where 1 = 1先寫上這樣一個條件,這樣你以后的條件就可以直接用 if判斷了,比如現在有A ,B 兩個條件 就可以直接這樣
String sql = "select * from table where 1 = 1";
if( 條件A != null ){
sql += " and A =" + 條件A;
}
if( 條件B != null ){
sql += " and B =" + 條件B;
}
這樣就可以避免多種情況存在的問題
你這樣做輸出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)
本文名稱:java代碼分條件查詢 java分類查詢
鏈接地址:http://m.kartarina.com/article18/hgjigp.html
成都網站建設公司_創新互聯,為您提供網站導航、微信公眾號、網站排名、網站制作、網站建設、網站設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯