如何用idea數(shù)據(jù)庫編寫快遞e站
用數(shù)據(jù)庫編寫快遞e站(本文只寫了idea方面的代碼)
隨著快遞業(yè)的不斷發(fā)展,快遞e站也越來越多,我們來編寫一個簡單的快遞e站小程序,本文就介紹了如何用數(shù)據(jù)庫知識編寫快遞e站。
##成品如下:
一、IDEA如何連接數(shù)據(jù)庫
第一種方法:直接在方法體中增加連接信息
優(yōu)點:如果僅使用一次數(shù)據(jù)庫操作可選擇
缺點:多次數(shù)據(jù)庫操作每次都需要寫,麻煩
public void select() { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { //1.注冊驅(qū)動 Class.forName("com.mysql.jdbc.Driver"); //2.定義sql String sql = "select * from kuaidi"; //3.獲取conn conn = DriverManager.getConnection("jdbc:mysql:///kuaidi", "root", "123"); //4.獲取執(zhí)行sql對象Statement stmt = conn.createStatement(); //5.執(zhí)行sql rs = stmt.executeQuery(sql); //6處理結(jié)果 while (rs.next()) { int danhao = rs.getInt(1); int qujianma = rs.getInt(2); String gongsi = rs.getString("gongsi"); String guizi = rs.getString(4); System.out.println("單號為:" + danhao + " " + "取件碼為:" + qujianma + " " + "公司是:" + gongsi + " " + "柜子在第" + guizi + "個"); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException throwables) { throwables.printStackTrace(); } finally { if (stmt != null) { try { stmt.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (rs != null) { try { rs.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } }
方法二:
建立一個JDBCHelper和一個存儲數(shù)據(jù)庫賬號密碼的Properties,來幫助快速加載驅(qū)動以及釋放內(nèi)存
優(yōu)點:只需要寫一次,用的時候調(diào)用即可
缺點:一次要寫很多
釋放內(nèi)存的時候可能傳入兩個或者三個參數(shù)需要釋放,所以用重載形式來解決
private static String url; private static String user; private static String password; private static String driver; /** * 文件的讀取,只需要讀取一次即可 */ static { //讀取資源文件,并獲取值 try { //1.創(chuàng)建properties集合類 Properties pro = new Properties(); //2.加載文件 //獲取src路徑下的文件的方式--->ClassLoader類加載器 ClassLoader classLoader = JDBCHelper.class.getClassLoader(); URL res = classLoader.getResource("jdbc.properties"); String path = res.getPath(); //pro.load(new FileReader("src/jdbc.properties")); pro.load(new FileReader(path)); url = pro.getProperty("url"); user = pro.getProperty("user"); password = pro.getProperty("password"); driver = pro.getProperty("driver"); Class.forName(driver); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 獲取連接 * * @return連接對象 */ public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, password); } /** * 釋放資源 * * @param stmt * @param conn */ public static void close(Statement stmt, Connection conn) { if (stmt != null) { try { stmt.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } //釋放內(nèi)存 public static void close(ResultSet rs, Statement stmt, Connection conn) { if (stmt != null) { try { stmt.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (rs != null) { try { rs.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } }
二、方法代碼的實現(xiàn)
1.快遞員增加快遞
代碼如下:
public class Add { Connection conn = null; Statement stmt = null; Random r= new Random(); public void addq(int danhao,String gongsi){ try { conn = JDBCHelper.getConnection(); int qujianma = r.nextInt((999999)+1); String guizi = Integer.toString(r.nextInt(100)+1); String sql = "insert into kuaidi values(" + danhao + "," + qujianma+",'"+gongsi+"','"+guizi+"')"; stmt = conn.createStatement(); int a = stmt.executeUpdate(sql); System.out.println("取件碼為:"+qujianma); if(a>0){ System.out.println("添加成功"); } else { System.out.println("添加失敗"); } } catch (SQLException throwables) { throwables.printStackTrace(); } } }
2.快遞員刪除快遞
代碼如下:
public class Delete { Connection conn = null; Statement stmt = null; public void delete(int danhao) { try { conn = JDBCHelper.getConnection(); String sql = "delete from kuaidi where danhao = "+danhao; stmt = conn.createStatement(); int a = stmt.executeUpdate(sql); if(a>0){ System.out.println("刪除成功"); } else { System.out.println("刪除失敗"); } } catch (SQLException throwables) { throwables.printStackTrace(); } finally { JDBCHelper.close(stmt,conn); } }
主要內(nèi)容代碼:
public class Imp { public static void main(String[] args) { kuaidi(); } public static void kuaidi() { System.out.println("====歡迎使用新職課快遞柜===="); Scanner sc = new Scanner(System.in); Random r = new Random(); while (true) { System.out.println("請輸入你的身份:1-快遞員,2-用戶"); try { int a = sc.nextInt(); if (a < 1 || a > 2) { System.out.println("輸入有誤,請重新輸入"); } else if (a == 1) { System.out.println("====歡迎使用新職課快遞柜===="); System.out.println("請選擇操作:1-存快遞 2-刪除快遞 3-修改快遞信息 4-查看所有快遞"); int b = sc.nextInt(); switch (b) { case 1: { System.out.println("====歡迎使用新職課快遞柜===="); System.out.println("請輸入快遞單號:"); int danhao = sc.nextInt(); System.out.println("請輸入公司名稱:"); String gongsi = sc.next(); Add add = new Add(); add.addq(danhao, gongsi); break; } case 2: { System.out.println("====歡迎使用新職課快遞柜===="); System.out.print("請輸入要刪除的訂單號:"); int dingdan = sc.nextInt(); Delete delete = new Delete(); delete.delete(dingdan); break; } case 3: { System.out.println("====歡迎使用新職課快遞柜===="); System.out.print("請輸入要修改的訂單號:"); int danhao = sc.nextInt(); Alter al = new Alter(); boolean q = al.select(danhao); if (q = true) { System.out.println("請輸入更改后的單號"); int afdanhao = sc.nextInt(); al.alter(afdanhao, danhao); } else { System.out.println("請核實訂單號"); } break; } case 4: { System.out.println("====歡迎使用新職課快遞柜===="); SelectAll s = new SelectAll(); s.select(); } } } else if (a == 2) { System.out.println("====歡迎使用新職課快遞柜===="); System.out.println("請輸入取件碼"); int qujianma = sc.nextInt(); Take t = new Take(); t.take(qujianma); } } catch (InputMismatchException e) { System.out.println(); System.out.println("請輸入數(shù)字序號!!!!!!!!"); System.out.println(); kuaidi(); } } } }
別的幾個代碼塊都大同小異,只需要修改sql語句即可
如有需要全部代碼,或者有疑問的同學(xué)私信我就可以了
到此這篇關(guān)于如何用idea數(shù)據(jù)庫編寫快遞e站的文章就介紹到這了,更多相關(guān)idea數(shù)據(jù)庫編寫快遞e站內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatis-plus用insertBatchSomeColumn方法批量新增指定字段
mybatisPlus底層的新增方法是一條一條的新增的,下面這篇文章主要給大家介紹了關(guān)于mybatis-plus用insertBatchSomeColumn方法批量新增指定字段的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05SpringAOP中基于注解實現(xiàn)通用日志打印方法詳解
這篇文章主要介紹了SpringAOP中基于注解實現(xiàn)通用日志打印方法詳解,在日常開發(fā)中,項目里日志是必不可少的,一般有業(yè)務(wù)日志,數(shù)據(jù)庫日志,異常日志等,主要用于幫助程序猿后期排查一些生產(chǎn)中的bug,需要的朋友可以參考下2023-12-12Java中的static關(guān)鍵字修飾屬性和方法(推薦)
這篇文章主要介紹了Java中的static關(guān)鍵字修飾屬性和方法,包括哪些成員屬性可以被static修飾,靜態(tài)屬性的訪問方法示例詳解,需要的朋友可以參考下2022-04-04