java代码数据库添加操作_java连接数据库后进行更新插入操作

接上一次的查询操作,这次将更新与插入的代码补充

首先是服务端的接收端,接收到客户端的请求则发送相应操作

if ("1".equals(message)) {

//从mysql数据库仓库中查询数据

jc.mysqlSelect("select * from cangku");

从oracle数据库订单表中查询数据

//jc.oracleSelect("select * from freshbin_dingdan");

//当oracle数据中连接不上时候,就从本地的mysql数据库的订单表获取数据

jc.mysqlSelectDingDan("select * from dingdan");

//获取订单表与仓库表比较后,数量不同的结果

jc.writeIO();

//将两张表比较后的结果返回给客户端

os.write(jc.writeIO().toString().getBytes());

os.flush();

}

//这是更新操作的功能代码

if("2".equals(message)) {

UpdateMySqlCangKuNumber umsck = new UpdateMySqlCangKuNumber();

//将需要更新以及插入的数据发送给客户端

StringBuffer sb = umsck.getUpdateInsertNumber();

os.write(sb.toString().getBytes());

}

os.write(("请输入1或2(1为查询,2为更新):\n").getBytes());

}

然后是获取需要更新与插入的id与数量

// 执行查询仓库与订单的语句,获取需要更细与插入的商品编号与数量

public void getNewNumber() {

// 从mysql数据库仓库中查询数据并储存起来

mysqlMap = jc.mysqlSelect("select * from cangku");

// 从mysql数据库订单表中获取数据并存储起来

mysqlDingDanMap = jc.mysqlSelectDingDan("select * from dingdan");

// 获取仓库表的所有数据

Set mysqlSet = mysqlMap.keySet();

// 获取订单表的数据

Set mysqlDingDanSet = mysqlDingDanMap.keySet();

for (Integer mn : mysqlSet) {

// 定义一个boolean类型的变量来表示当仓库的商品编号在订单表中不存在时,就设置为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;

}

}

// 当flag为true时,就把订单表中没有的商品编号存起来

if (flag) {

insertNewNumber.put(mn, mysqlMap.get(mn));

}

}

}

接着是执行更新操作和插入操作,以及把结果以字符串的形式发送给客户端

// 进行更新操作

public void updateNumber() {

// 执行查询仓库与订单的语句,获取需要更细与插入的商品编号与数量

getNewNumber();

// 获取所有需要更新的商品编号

Set mysqlDingDanNumber = updateNewNumber.keySet();

for (Integer i : mysqlDingDanNumber) {

// 将需要更新的商品编号和数量更新到订单表中

jc.getMsPool().getUPstmt(

"update dingdan set dingdannumber=? WHERE id=?", i,

updateNewNumber.get(i));

}

}

// 进行插入操作

public void insertNumber() {

// 获取所有需要插入的商品编号

Set mysqlDingDanNumber = insertNewNumber.keySet();

for (Integer i : mysqlDingDanNumber) {

// 将需要插入的商品编号和数量插入到订单表中

jc.getMsPool().getUPstmt(

"insert into dingdan(dingdannumber,id) values(?,?)", i,

insertNewNumber.get(i));

}

}

// 遍历需要更新的数据,以字符串形式存储,以便将来发送给客户端

public StringBuffer getUpdateInsertNumber() {

// 进行更新操作

updateNumber();

// 进行插入操作

insertNumber();

// 获取所有需要更新的商品编号

Set mysqlDingDanNumber = updateNewNumber.keySet();

for (Integer i : mysqlDingDanNumber) {

SBUpdateNumber.append("更新了商品编号为:" + i + "的商品-----此次更新的数量为:"

+ updateNewNumber.get(i) + "\r\n");

}

// 获取所有需要插入的商品编号

Set mysqlDingDanInsertNumber = insertNewNumber.keySet();

for (Integer i : mysqlDingDanInsertNumber) {

SBUpdateNumber.append("插入了新的商品编号为:" + i + "的商品-----此次插入的数量为:"

+ insertNewNumber.get(i) + "\r\n");

}

return SBUpdateNumber;

}

最后,当然是上图了

0818b9ca8b590ca3270a3433284dd417.png

下面这张图是我仅仅实现了更新功能时候的测试

0818b9ca8b590ca3270a3433284dd417.png

然后是执行更新与插入的图

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

这个小小的程序经过改了又改,虽然有点浪费时间,但是实现效果后,自己感觉还是挺开心的.....虽然已经很晚了,但是顿时感觉很清醒..........好,可以去睡觉了...........加油!,.......................

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值