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

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

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;
}

最后,当然是上图了

Java数据库增加一个表 java连接数据库增加数据_java代码数据库添加操作

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

Java数据库增加一个表 java连接数据库增加数据_客户端_02

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

Java数据库增加一个表 java连接数据库增加数据_数据_03

Java数据库增加一个表 java连接数据库增加数据_mysql_04

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