2016-04-24 21 views
0

我有一個艱難的時間,試圖通過篩選的最新數據如何過濾通過最新的數據使用MySQL

MySQL查詢

public DefaultTableModel getData1(Date start,Date end){ 
....... 
String sql = "SELECT * FROM torch.new_table WHERE pro_date between '"+start+"' and '"+end+"'"; 
..... 
} 

代碼從JCalendar獲取日期(從JCalendar獲得)

DefaultTableModel dm = new Products().getData1(sDate.getDate(), eDate.getDate()); 

完整的代碼是在這裏:http://postimg.org/image/4zycbtj4n/

+0

使用PreparedStatement http://stackoverflow.com/questions/18614836/using- setdate-in-preparedstatement – RubioRic

+0

執行語句的部分在哪裏? – Priyamal

+0

完整的代碼在這裏:http://postimg.org/image/4zycbtj4n/ –

回答

1

使用通配符 '?'當你定義查詢時。

使用setDate和新的java.sql.Date替換每個通配符。

... 

String sql = "SELECT * FROM torch.new_table WHERE pro_date between ? and ?"; 

PreparedStatement ps = con.prepareStatement(sql); 

ps.setDate(1, new java.sql.Date(start.getTime()); 
ps.setDate(2, new java.sql.Date(end.getTime()); 

ResultSet rs = ps.executeQuery(); 
... 

如果你獲得一個JDateChooser一個字符串,你可以使用

ps.setDate(1, java.sql.Date.valueOf(start)); 
ps.setDate(2, java.sql.Date.valueOf(end)); 

這裏更多的可能性Using setDate in PreparedStatement

+0

jdateChooser無法將字符串轉換爲長plz幫助 –

+0

@MuhammadKashifSaeed我已更新我的答案。 – RubioRic

+0

無法找到符號符號:class valueOf location:Date :(???? –

0

部分代碼,以濾除最新數據使用MySQL(從jCalender獲得)

感謝您的幫助@RubioRic

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 

// dateT和日期E型jDatechooser

String get = sdf.format(dateT.getDate()); 

    String get1 = sdf.format(dateE.getDate()); 

//查詢選擇從數據庫中獲取數據

String sql = "SELECT * FROM date WHERE DATE(Date) >= ? && DATE(Date) <= ?"; 

    try{ 

     Connection conn = dataB.mySqlCon(); 

     PreparedStatement st = conn.prepareStatement(sql); 

     st.setString(1, get); 
     st.setString(2, get1); 

     ResultSet rs = st.executeQuery();