您的位置:首页 > 编程语言 > Java开发

java连接数据库后进行更新插入操作

2016-08-23 23:50 561 查看
接上一次的查询操作,这次将更新与插入的代码补充

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

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<Integer> mysqlSet = mysqlMap.keySet();

// 获取订单表的数据
Set<Integer> 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<Integer> mysqlDingDanNumber = updateNewNumber.keySet();
for (Integer i : mysqlDingDanNumber) {
// 将需要更新的商品编号和数量更新到订单表中
jc.getMsPool().getUPstmt(
"update dingdan set dingdannumber=? WHERE id=?", i,
updateNewNumber.get(i));
}
}

// 进行插入操作
public void insertNumber() {
// 获取所有需要插入的商品编号
Set<Integer> 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<Integer> mysqlDingDanNumber = updateNewNumber.keySet();

for (Integer i : mysqlDingDanNumber) {
SBUpdateNumber.append("更新了商品编号为:" + i + "的商品-----此次更新的数量为:"
+ updateNewNumber.get(i) + "\r\n");
}

// 获取所有需要插入的商品编号
Set<Integer> mysqlDingDanInsertNumber = insertNewNumber.keySet();

for (Integer i : mysqlDingDanInsertNumber) {
SBUpdateNumber.append("插入了新的商品编号为:" + i + "的商品-----此次插入的数量为:"
+ insertNewNumber.get(i) + "\r\n");
}

return SBUpdateNumber;
}

最后,当然是上图了



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



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





这个小小的程序经过改了又改,虽然有点浪费时间,但是实现效果后,自己感觉还是挺开心的.....虽然已经很晚了,但是顿时感觉很清醒..........好,可以去睡觉了...........加油!,.......................
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java
相关文章推荐