如何用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-05
SpringAOP中基于注解實現(xiàn)通用日志打印方法詳解
這篇文章主要介紹了SpringAOP中基于注解實現(xiàn)通用日志打印方法詳解,在日常開發(fā)中,項目里日志是必不可少的,一般有業(yè)務(wù)日志,數(shù)據(jù)庫日志,異常日志等,主要用于幫助程序猿后期排查一些生產(chǎn)中的bug,需要的朋友可以參考下2023-12-12
Java中的static關(guān)鍵字修飾屬性和方法(推薦)
這篇文章主要介紹了Java中的static關(guān)鍵字修飾屬性和方法,包括哪些成員屬性可以被static修飾,靜態(tài)屬性的訪問方法示例詳解,需要的朋友可以參考下2022-04-04

