Java通過JDBC連接MySQL數據庫


代碼描述:把前台獲取的字段作為查詢條件,返回符合條件的記錄。

 1 package com.imooc.dao;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.util.ArrayList;
 9 import java.util.List;
10 
11 import com.imooc.bean.Message;
12 
13 /**
14  * 處理與數據庫相關的查詢操作
15  *
16  */
17 public class MessageDao {
18     public List<Message> queryMessageList(String command,String description){
19         List<Message> messageList = new ArrayList<Message>();
20         try {
21             Class.forName("com.mysql.jdbc.Driver");
22             Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/micro_message", "root", "admin");
23             // StringBuilder速度快適合單線程,StringBuffer適合多線程操作大量數據,String每次都是生成新對象,需要垃圾回收。
24             StringBuilder sb = new StringBuilder("select ID,COMMAND,DESCRIPTION,CONTENT from message where 1=1 ");
25             // String sql = "select ID,COMMAND,DESCRIPTION,CONTENT from message";
26             List<String> paramList = new ArrayList<String>();
27             if(null != command && !"".equals(command)){
28                 sb.append(" and COMMAND=?");
29                 paramList.add(command);
30             }
31             if(null != description && !"".equals(description)){
32                 // MySQL中用%表示任意字符,用空格用於連接
33                 sb.append(" and DESCRIPTION like '%' ? '%'");
34                 paramList.add(description);
35             }
36             PreparedStatement pstmt = conn.prepareStatement(sb.toString());
37             for(int i=0;i<paramList.size();i++){
38                 // 給PreparedStatement中預執行SQL語句追加值
39                 pstmt.setString(i+1, paramList.get(i));
40             }
41             ResultSet rs = pstmt.executeQuery();
42             while(rs.next()){
43                 Message message = new Message();
44                 messageList.add(message);// 這里messageList是個容器,只是對message的引用,所以可以提前放入容器中
45                 message.setId(rs.getString("ID"));
46                 message.setCommand(rs.getString("COMMAND"));
47                 message.setDescription(rs.getString("DESCRIPTION"));
48                 message.setContent(rs.getString("CONTENT"));
49             }
50     }catch (ClassNotFoundException e) {
51         e.printStackTrace();
52     }catch (SQLException e) {
53         e.printStackTrace();
54     }
55     return messageList;
56   }
57     
58 }
59     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM