java代码数据库添加操作_java连接数据库后进行更新插入操作
接上一次的查詢操作,這次將更新與插入的代碼補(bǔ)充
首先是服務(wù)端的接收端,接收到客戶端的請(qǐng)求則發(fā)送相應(yīng)操作
if ("1".equals(message)) {
//從mysql數(shù)據(jù)庫倉庫中查詢數(shù)據(jù)
jc.mysqlSelect("select * from cangku");
從oracle數(shù)據(jù)庫訂單表中查詢數(shù)據(jù)
//jc.oracleSelect("select * from freshbin_dingdan");
//當(dāng)oracle數(shù)據(jù)中連接不上時(shí)候,就從本地的mysql數(shù)據(jù)庫的訂單表獲取數(shù)據(jù)
jc.mysqlSelectDingDan("select * from dingdan");
//獲取訂單表與倉庫表比較后,數(shù)量不同的結(jié)果
jc.writeIO();
//將兩張表比較后的結(jié)果返回給客戶端
os.write(jc.writeIO().toString().getBytes());
os.flush();
}
//這是更新操作的功能代碼
if("2".equals(message)) {
UpdateMySqlCangKuNumber umsck = new UpdateMySqlCangKuNumber();
//將需要更新以及插入的數(shù)據(jù)發(fā)送給客戶端
StringBuffer sb = umsck.getUpdateInsertNumber();
os.write(sb.toString().getBytes());
}
os.write(("請(qǐng)輸入1或2(1為查詢,2為更新):\n").getBytes());
}
然后是獲取需要更新與插入的id與數(shù)量
// 執(zhí)行查詢倉庫與訂單的語句,獲取需要更細(xì)與插入的商品編號(hào)與數(shù)量
public void getNewNumber() {
// 從mysql數(shù)據(jù)庫倉庫中查詢數(shù)據(jù)并儲(chǔ)存起來
mysqlMap = jc.mysqlSelect("select * from cangku");
// 從mysql數(shù)據(jù)庫訂單表中獲取數(shù)據(jù)并存儲(chǔ)起來
mysqlDingDanMap = jc.mysqlSelectDingDan("select * from dingdan");
// 獲取倉庫表的所有數(shù)據(jù)
Set mysqlSet = mysqlMap.keySet();
// 獲取訂單表的數(shù)據(jù)
Set mysqlDingDanSet = mysqlDingDanMap.keySet();
for (Integer mn : mysqlSet) {
// 定義一個(gè)boolean類型的變量來表示當(dāng)倉庫的商品編號(hào)在訂單表中不存在時(shí),就設(shè)置為true
boolean flag = true;
for (Integer on : mysqlDingDanSet) {
if (mn.intValue() == on.intValue()) {
if (mysqlMap.get(mn).intValue() != mysqlDingDanMap.get(mn)
.intValue()) {
updateNewNumber.put(mn, mysqlMap.get(mn));
}
flag = false;
}
}
// 當(dāng)flag為true時(shí),就把訂單表中沒有的商品編號(hào)存起來
if (flag) {
insertNewNumber.put(mn, mysqlMap.get(mn));
}
}
}
接著是執(zhí)行更新操作和插入操作,以及把結(jié)果以字符串的形式發(fā)送給客戶端
// 進(jìn)行更新操作
public void updateNumber() {
// 執(zhí)行查詢倉庫與訂單的語句,獲取需要更細(xì)與插入的商品編號(hào)與數(shù)量
getNewNumber();
// 獲取所有需要更新的商品編號(hào)
Set mysqlDingDanNumber = updateNewNumber.keySet();
for (Integer i : mysqlDingDanNumber) {
// 將需要更新的商品編號(hào)和數(shù)量更新到訂單表中
jc.getMsPool().getUPstmt(
"update dingdan set dingdannumber=? WHERE id=?", i,
updateNewNumber.get(i));
}
}
// 進(jìn)行插入操作
public void insertNumber() {
// 獲取所有需要插入的商品編號(hào)
Set mysqlDingDanNumber = insertNewNumber.keySet();
for (Integer i : mysqlDingDanNumber) {
// 將需要插入的商品編號(hào)和數(shù)量插入到訂單表中
jc.getMsPool().getUPstmt(
"insert into dingdan(dingdannumber,id) values(?,?)", i,
insertNewNumber.get(i));
}
}
// 遍歷需要更新的數(shù)據(jù),以字符串形式存儲(chǔ),以便將來發(fā)送給客戶端
public StringBuffer getUpdateInsertNumber() {
// 進(jìn)行更新操作
updateNumber();
// 進(jìn)行插入操作
insertNumber();
// 獲取所有需要更新的商品編號(hào)
Set mysqlDingDanNumber = updateNewNumber.keySet();
for (Integer i : mysqlDingDanNumber) {
SBUpdateNumber.append("更新了商品編號(hào)為:" + i + "的商品-----此次更新的數(shù)量為:"
+ updateNewNumber.get(i) + "\r\n");
}
// 獲取所有需要插入的商品編號(hào)
Set mysqlDingDanInsertNumber = insertNewNumber.keySet();
for (Integer i : mysqlDingDanInsertNumber) {
SBUpdateNumber.append("插入了新的商品編號(hào)為:" + i + "的商品-----此次插入的數(shù)量為:"
+ insertNewNumber.get(i) + "\r\n");
}
return SBUpdateNumber;
}
最后,當(dāng)然是上圖了
下面這張圖是我僅僅實(shí)現(xiàn)了更新功能時(shí)候的測試
然后是執(zhí)行更新與插入的圖
這個(gè)小小的程序經(jīng)過改了又改,雖然有點(diǎn)浪費(fèi)時(shí)間,但是實(shí)現(xiàn)效果后,自己感覺還是挺開心的.....雖然已經(jīng)很晚了,但是頓時(shí)感覺很清醒..........好,可以去睡覺了...........加油!,.......................
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的java代码数据库添加操作_java连接数据库后进行更新插入操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java common io_Java之
- 下一篇: linux安装mysql 5.7_lin