前言java
在筆者學習搭建WEB項目的時候,遇到過很多問題,如鏈接驅動失敗,鏈接數據庫失敗,經過SQL操做數據庫失敗等等。mysql
今天就作個筆記,關於如何經過JDBC鏈接MySQL,以及如何在MyEclipse中操做數據庫進行增、刪、改、查的操做。sql
相關連接數據庫
鏈接MySQL的jar包(連接:https://pan.baidu.com/s/1i7ckX4D 密碼:3rwt)
函數
代碼片斷工具
工具類(函數①鏈接驅動、獲取Connection;函數②關閉Connection)學習
1 package com.sariel.Utils; 2 3 import java.sql.DriverManager; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import com.mysql.jdbc.Connection; 7 8 public class DBUtils { 9 private final static String driverName="com.mysql.jdbc.Driver"; 10 private final static String url="jdbc:mysql://localhost:3306/sariel_db"; 11 private final static String user="root"; 12 private final static String pwd="sariel"; 13 14 /** 鏈接Mysql數據庫*/ 15 public static Connection getCon(){ 16 Connection conn=null; 17 try { 18 Class.forName(driverName); 19 System.out.println("加載驅動成功"); 20 conn = (Connection) DriverManager.getConnection(url, user, pwd); 21 System.out.println("數據庫鏈接成功"); 22 } catch (Exception e) { 23 e.printStackTrace(); 24 System.out.println("數據庫鏈接失敗"); 25 } 26 return conn; 27 } 28 29 30 /** 斷開Mysql數據庫*/ 31 public static void closeCon(Connection conn, PreparedStatement stat, ResultSet rs){ 32 try { 33 if(rs!=null){ 34 rs.close(); 35 }if(stat!=null){ 36 stat.close(); 37 }if(conn!=null){ 38 conn.close(); 39 } 40 System.out.println("已斷開數據庫鏈接"); 41 } catch (Exception e) { 42 e.printStackTrace(); 43 } 44 } 45 }
實體類 (客戶資料表)url
1 package com.sariel.Bean; 2 3 /** 客戶資料 */ 4 public class Customer_Information { 5 /** sysID */ 6 private String sys_id; 7 /** cusID */ 8 private String cus_id; 9 10 /** 帳號 */ 11 private String cus_account_number; 12 13 /** 性別 */ 14 private String cus_sex; 15 16 /** 個性簽名 */ 17 private String cus_personality_signature; 18 19 /** 興趣愛好 */ 20 private String cus_hobby; 21 22 /** 密碼 */ 23 private String cus_psssworld; 24 25 /** 郵箱 */ 26 private String cus_email; 27 28 /** 電話 */ 29 private String cus_phone_number; 30 31 /** 地址 */ 32 private String cus_address; 33 34 /** 頭像路徑 */ 35 private String cus_head_portrait; 36 37 /** 無參構造方法 */ 38 public Customer_Information() { 39 super(); 40 } 41 42 /** 有參構造方法 */ 43 public Customer_Information(String sysId, String cusId, 44 String cusAccountNumber, String cusSex, 45 String cusPersonalitySignature, String cusHobby, 46 String cusPsssworld, String cusEmail, String cusPhoneNumber, 47 String cusAddress, String cusHeadPortrait) { 48 super(); 49 sys_id = sysId; 50 cus_id = cusId; 51 cus_account_number = cusAccountNumber; 52 cus_sex = cusSex; 53 cus_personality_signature = cusPersonalitySignature; 54 cus_hobby = cusHobby; 55 cus_psssworld = cusPsssworld; 56 cus_email = cusEmail; 57 cus_phone_number = cusPhoneNumber; 58 cus_address = cusAddress; 59 cus_head_portrait = cusHeadPortrait; 60 } 61 62 public String getSys_id() { 63 return sys_id; 64 } 65 66 public void setSys_id(String sysId) { 67 sys_id = sysId; 68 } 69 70 public String getCus_id() { 71 return cus_id; 72 } 73 74 public void setCus_id(String cusId) { 75 cus_id = cusId; 76 } 77 78 public String getCus_account_number() { 79 return cus_account_number; 80 } 81 82 public void setCus_account_number(String cusAccountNumber) { 83 cus_account_number = cusAccountNumber; 84 } 85 86 public String getCus_sex() { 87 return cus_sex; 88 } 89 90 public void setCus_sex(String cusSex) { 91 cus_sex = cusSex; 92 } 93 94 public String getCus_personality_signature() { 95 return cus_personality_signature; 96 } 97 98 public void setCus_personality_signature(String cusPersonalitySignature) { 99 cus_personality_signature = cusPersonalitySignature; 100 } 101 102 public String getCus_hobby() { 103 return cus_hobby; 104 } 105 106 public void setCus_hobby(String cusHobby) { 107 cus_hobby = cusHobby; 108 } 109 110 public String getCus_psssworld() { 111 return cus_psssworld; 112 } 113 114 public void setCus_psssworld(String cusPsssworld) { 115 cus_psssworld = cusPsssworld; 116 } 117 118 public String getCus_email() { 119 return cus_email; 120 } 121 122 public void setCus_email(String cusEmail) { 123 cus_email = cusEmail; 124 } 125 126 public String getCus_phone_number() { 127 return cus_phone_number; 128 } 129 130 public void setCus_phone_number(String cusPhoneNumber) { 131 cus_phone_number = cusPhoneNumber; 132 } 133 134 public String getCus_address() { 135 return cus_address; 136 } 137 138 public void setCus_address(String cusAddress) { 139 cus_address = cusAddress; 140 } 141 142 public String getCus_head_portrait() { 143 return cus_head_portrait; 144 } 145 146 public void setCus_head_portrait(String cusHeadPortrait) { 147 cus_head_portrait = cusHeadPortrait; 148 } 149 }
邏輯類(實現對客戶資料的增刪改查操做)spa
1 package com.sariel.Service; 2 3 import java.sql.ResultSet; 4 import java.util.ArrayList; 5 import java.util.List; 6 import com.mysql.jdbc.Connection; 7 import com.mysql.jdbc.PreparedStatement; 8 import com.sariel.Bean.Customer_Information; 9 import com.sariel.Utils.DBUtils; 10 11 /** 客戶信息邏輯 */ 12 public class Customer_Information_Service { 13 14 public static void main(String[] args) { 15 // Customer_Information_Service cs = new Customer_Information_Service(); 16 // cs.selectCustomerInfoById("YXG001");// 根據客戶的cus_id查詢指定客戶資料信息 17 } 18 19 /** 新增客戶信息 */ 20 public boolean addCustomerInfo(String cus_id, String cus_account_number, 21 String cus_sex, String cus_personality_signature, String cus_hobby, 22 String cus_psssworld, String cus_email, String cus_phone_number, 23 String cus_address, String cus_head_portrait) { 24 boolean flag = false; 25 Connection conn = null; 26 PreparedStatement pstmt = null; 27 String sql = "insert into customer_information value(null,?,?,?,?,?,?,?,?,?,?)"; 28 try { 29 if (addEmpty(cus_id, cus_account_number, cus_sex, 30 cus_personality_signature, cus_hobby, cus_psssworld, 31 cus_email, cus_phone_number, cus_address, cus_head_portrait)) { 32 conn = DBUtils.getCon(); 33 pstmt = (PreparedStatement) conn.prepareStatement(sql); 34 pstmt.setString(1, cus_id); 35 pstmt.setString(2, cus_account_number); 36 pstmt.setString(3, cus_sex); 37 pstmt.setString(4, cus_personality_signature); 38 pstmt.setString(5, cus_hobby); 39 pstmt.setString(6, cus_psssworld); 40 pstmt.setString(7, cus_email); 41 pstmt.setString(8, cus_phone_number); 42 pstmt.setString(9, cus_address); 43 pstmt.setString(10, cus_head_portrait); 44 45 int num = pstmt.executeUpdate(); 46 if (num > 0) { 47 System.out.println("新增數據成功"); 48 } else { 49 System.out.println("新增數據失敗"); 50 } 51 } else { 52 System.out.println("新增客戶信息時,有必輸項爲空,新增失敗"); 53 } 54 55 } catch (Exception e) { 56 e.printStackTrace(); 57 System.out.println("新增出現異常"); 58 } finally { 59 DBUtils.closeCon(conn, pstmt, null); 60 } 61 return flag; 62 } 63 64 /** 按帳號修改客戶信息 */ 65 public boolean updateCustomerInfo(String cus_id, String cus_account_number, 66 String cus_sex, String cus_personality_signature, String cus_hobby, 67 String cus_psssworld, String cus_email, String cus_phone_number, 68 String cus_address, String cus_head_portrait) { 69 boolean flag = false; 70 Connection conn = null; 71 PreparedStatement pstmt = null; 72 String sql = "update customer_information set cus_account_number=?,cus_sex=?,cus_personality_signature=?,cus_hobby=?,cus_psssworld=?,cus_email=?,cus_phone_number=?,cus_address=?,cus_head_portrait=?,cus_id=? where cus_id = ?"; 73 try { 74 if (cus_id != null || !"".equals(cus_id)) { 75 Customer_Information oldInfo = selectCustomerInfoById(cus_id); 76 if (cus_id == null || "".equals(cus_id)) { 77 cus_id = oldInfo.getCus_account_number(); 78 } 79 if (cus_account_number == null || "".equals(cus_account_number)) { 80 cus_account_number = oldInfo.getCus_account_number(); 81 } 82 if (cus_sex == null || "".equals(cus_sex)) { 83 cus_sex = oldInfo.getCus_sex(); 84 } 85 if (cus_personality_signature == null 86 || "".equals(cus_personality_signature)) { 87 cus_personality_signature = oldInfo 88 .getCus_personality_signature(); 89 } 90 if (cus_hobby == null || "".equals(cus_hobby)) { 91 cus_hobby = oldInfo.getCus_hobby(); 92 } 93 if (cus_psssworld == null || "".equals(cus_psssworld)) { 94 cus_psssworld = oldInfo.getCus_psssworld(); 95 } 96 if (cus_email == null || "".equals(cus_email)) { 97 cus_email = oldInfo.getCus_email(); 98 } 99 if (cus_phone_number == null || "".equals(cus_phone_number)) { 100 cus_phone_number = oldInfo.getCus_phone_number(); 101 } 102 if (cus_address == null || "".equals(cus_address)) { 103 cus_address = oldInfo.getCus_address(); 104 } 105 if (cus_head_portrait == null || "".equals(cus_head_portrait)) { 106 cus_head_portrait = oldInfo.getCus_head_portrait(); 107 } 108 conn = DBUtils.getCon(); 109 pstmt = (PreparedStatement) conn.prepareStatement(sql); 110 pstmt.setString(1, cus_account_number); 111 pstmt.setString(2, cus_sex); 112 pstmt.setString(3, cus_personality_signature); 113 pstmt.setString(4, cus_hobby); 114 pstmt.setString(5, cus_psssworld); 115 pstmt.setString(6, cus_email); 116 pstmt.setString(7, cus_phone_number); 117 pstmt.setString(8, cus_address); 118 pstmt.setString(9, cus_head_portrait); 119 pstmt.setString(10, cus_id); 120 pstmt.setString(11, cus_id); 121 122 int num = pstmt.executeUpdate(); 123 if (num > 0) { 124 System.out.println("修改數據成功" 125 + "\n" 126 + selectCustomerInfoById(cus_id) 127 .getCus_account_number() + "\t" 128 + selectCustomerInfoById(cus_id).getCus_address()); 129 flag = true; 130 } else { 131 System.out.println("修改數據失敗"); 132 // flag = false; 133 } 134 } else { 135 System.out.println("[cus_id]客戶ID不能爲空,數據修改失敗"); 136 } 137 } catch (Exception e) { 138 e.printStackTrace(); 139 } finally { 140 DBUtils.closeCon(conn, pstmt, null); 141 } 142 return flag; 143 } 144 145 /** 刪除指定ID的客戶信息 */ 146 public boolean deleteCustomerInfo(String cus_id) { 147 boolean flag = false; 148 Connection conn = null; 149 PreparedStatement pstmt = null; 150 String sql = "delete from customer_information where cus_id = ?"; 151 try { 152 if (cus_id != null && !"".equals(cus_id)) { 153 conn = DBUtils.getCon(); 154 pstmt = (PreparedStatement) conn.prepareStatement(sql); 155 pstmt.setString(1, cus_id); 156 int num = pstmt.executeUpdate(); 157 if (num > 0) { 158 flag = true; 159 System.out.println("刪除指定客戶數據成功"); 160 } else { 161 flag = false; 162 System.out.println("刪除指定客戶數據失敗"); 163 } 164 } else { 165 System.out.println("[cus_id]客戶ID不能爲空,數據刪除失敗"); 166 } 167 } catch (Exception e) { 168 e.printStackTrace(); 169 } finally { 170 DBUtils.closeCon(conn, pstmt, null); 171 } 172 return flag; 173 } 174 175 /** 查詢全部客戶信息 */ 176 public List<Customer_Information> selectCustomerInfo() { 177 List<Customer_Information> list_cus = new ArrayList<Customer_Information>(); 178 Connection conn = null; 179 PreparedStatement pstmt = null; 180 ResultSet rs = null; 181 String sql = "select * from customer_information"; 182 if (sql != null) { 183 try { 184 conn = DBUtils.getCon(); 185 pstmt = (PreparedStatement) conn.prepareStatement(sql); 186 rs = pstmt.executeQuery(); 187 if (rs != null) { 188 System.out.println("進入result數據集寫入方法"); 189 while (rs.next()) { 190 Customer_Information cus = new Customer_Information(); 191 cus.setCus_id(rs.getString(2)); 192 cus.setCus_account_number(rs.getString(3)); 193 cus.setCus_sex(rs.getString(4)); 194 cus.setCus_personality_signature(rs.getString(5)); 195 cus.setCus_hobby(rs.getString(6)); 196 cus.setCus_psssworld(rs.getString(7)); 197 cus.setCus_email(rs.getString(8)); 198 cus.setCus_phone_number(rs.getString(9)); 199 cus.setCus_address(rs.getString(10)); 200 cus.setCus_head_portrait(rs.getString(11)); 201 list_cus.add(cus); 202 } 203 System.out.println("將全部客戶信息裝入List集合後,集合長度是:" 204 + list_cus.size()); 205 } else { 206 System.out.println("查詢的Resultset爲空"); 207 } 208 } catch (Exception e) { 209 e.printStackTrace(); 210 System.out.println("查詢全部客戶信息出現異常"); 211 } finally { 212 DBUtils.closeCon(conn, pstmt, rs); 213 } 214 } 215 return list_cus; 216 } 217 218 /** 按帳號查詢指定客戶信息 */ 219 public Customer_Information selectCustomerInfoById(String cus_id) { 220 Customer_Information cus = null; 221 Connection conn = null; 222 PreparedStatement pstmt = null; 223 ResultSet rs = null; 224 String sql = "select * from customer_information where cus_id = ?"; 225 try { 226 conn = DBUtils.getCon(); 227 pstmt = (PreparedStatement) conn.prepareStatement(sql); 228 pstmt.setString(1, cus_id); 229 rs = pstmt.executeQuery(); 230 if (rs != null || !"".equals(rs)) { 231 System.out.println("查到指定帳號信息"); 232 while (rs.next()) { 233 cus = new Customer_Information(); 234 cus.setCus_id(rs.getString(2)); 235 cus.setCus_account_number(rs.getString(3)); 236 cus.setCus_sex(rs.getString(4)); 237 cus.setCus_personality_signature(rs.getString(5)); 238 cus.setCus_hobby(rs.getString(6)); 239 cus.setCus_psssworld(rs.getString(7)); 240 cus.setCus_email(rs.getString(8)); 241 cus.setCus_phone_number(rs.getString(9)); 242 cus.setCus_address(rs.getString(10)); 243 cus.setCus_head_portrait(rs.getString(11)); 244 } 245 } else { 246 System.out.println("未找到指定帳號的客戶信息"); 247 } 248 } catch (Exception e) { 249 e.printStackTrace(); 250 } finally { 251 DBUtils.closeCon(conn, pstmt, rs); 252 } 253 return cus; 254 } 255 256 /** 驗證輸入的客戶必輸字段的信息數據是否爲空 */ 257 public boolean addEmpty(String cus_id, String cus_account_number, 258 String cus_sex, String cus_personality_signature, String cus_hobby, 259 String cus_psssworld, String cus_email, String cus_phone_number, 260 String cus_address, String cus_head_portrait) { 261 boolean flag = false; 262 if (cus_id != null || !"".equals(cus_id)) { 263 flag = true; 264 } else { 265 flag = false; 266 System.out.println("[cus_id]爲空"); 267 } 268 269 if (cus_account_number != null || !"".equals(cus_account_number)) { 270 flag = true; 271 } else { 272 flag = false; 273 System.out.println("[cus_account_number]爲空"); 274 } 275 276 if (cus_sex != null || !"".equals(cus_sex)) { 277 flag = true; 278 } else { 279 flag = false; 280 System.out.println("[cus_sex]爲空"); 281 } 282 283 if (cus_personality_signature != null 284 || !"".equals(cus_personality_signature)) { 285 flag = true; 286 } else { 287 flag = false; 288 System.out.println("[cus_personality_signature]爲空"); 289 } 290 291 if (cus_hobby != null || !"".equals(cus_hobby)) { 292 flag = true; 293 } else { 294 flag = false; 295 System.out.println("[cus_hobby]爲空"); 296 } 297 298 if (cus_psssworld != null || !"".equals(cus_psssworld)) { 299 flag = true; 300 } else { 301 flag = false; 302 System.out.println("[cus_psssworld]爲空"); 303 } 304 305 if (cus_email != null || !"".equals(cus_email)) { 306 flag = true; 307 } else { 308 flag = false; 309 System.out.println("[cus_email]爲空"); 310 } 311 312 if (cus_phone_number != null || !"".equals(cus_phone_number)) { 313 flag = true; 314 } else { 315 flag = false; 316 System.out.println("[cus_phone_number]爲空"); 317 } 318 319 if (cus_address != null || !"".equals(cus_address)) { 320 flag = true; 321 } else { 322 flag = false; 323 System.out.println("[cus_address]爲空"); 324 } 325 return flag; 326 } 327 }
本篇筆記適用於剛學習使用MyEclipse鏈接MySQL的朋友,大神們請無視 -.- code
---- THE END
---- By sariel 2018-1-16