数据更新的问题Mysql数据库

6饼 2017-03-07 09:53:42
我连接数据库,根据 exam_week和class_name字段查到到要更新的这行数据,然后set remarks这个字段的值,可以后台一点反应没有,数据也没有被修改. 没找出来哪有错误的,


package com.zyh.service;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
* Project Name: sdut-deliver File name: Updatetable.java
*
* @author : zyh
* @version 创建时间:2017年3月7日 下午6:29:07 TODO
*/
public class Updatetable {

String url = "jdbc:mysql://localhost:3306/sdutEXAM?useSSL=false";
String user = "root";
String password = "root";
String driver = "com.mysql.jdbc.Driver";
Statement stmt;

public void update(String exam_week1, String class_name1, String remarks1) {

try {
Class.forName(driver);

Connection conn = DriverManager.getConnection(url, user, password);
if (!conn.isClosed())
System.out.println("Succeeded connecting to the Database!11111");
stmt = conn.createStatement();
String sqlUpdateTable = "update exam set remarks= '" + remarks1 + "' where exam_week = '" + exam_week1
+ "' and class_name = '" + class_name1+"'";

System.out.println("接下来执行更新");
if(stmt.execute(sqlUpdateTable)){
System.out.println("更新完成\n");
}else {
System.out.println("更新出现问题,数据没有更新\n");
}

stmt.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}

}

}


这是我循环更新的数据,就是没法更新.

第1组数据是: 16-4-5、6 教4408(西) 科学2
Succeeded connecting to the Database!11111
接下来执行更新
更新出现问题,数据没有更新

第2组数据是: 16-4-5、6 教5103(西) 科学
Succeeded connecting to the Database!11111
接下来执行更新
更新出现问题,数据没有更新

........

第24组数据是: 19-5-7、8 教3306(西) 科学
Succeeded connecting to the Database!11111
接下来执行更新
更新出现问题,数据没有更新

第25组数据是: 19-5-7、8 教3208(东) 科学
Succeeded connecting to the Database!11111
接下来执行更新
更新出现问题,数据没有更新
...全文
550 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
6饼 2017-03-10
  • 打赏
  • 举报
回复
引用 19 楼 twren 的回复:
试试重新建一个mysql用户,不要用root账户
我新建了一个用户,还是不可以
6饼 2017-03-10
  • 打赏
  • 举报
回复
引用 18 楼 szx_zsx 的回复:
事务没有提交。
我设置的是自动提交啊
twren 2017-03-10
  • 打赏
  • 举报
回复
试试重新建一个mysql用户,不要用root账户
赏金--猎人 2017-03-10
  • 打赏
  • 举报
回复
事务没有提交。
我爱娃哈哈 2017-03-10
  • 打赏
  • 举报
回复
引用 10 楼 u013492736 的回复:
[quote=引用 9 楼 u010223407 的回复:] [quote=引用 8 楼 u013492736 的回复:] [quote=引用 7 楼 u010223407 的回复:] [quote=引用 6楼我是你的主体 的回复:][quote=引用 5 楼 u010223407 的回复:] 你先要确定是哪个环节出的问题,是数据没到后台,还是修改出现异常,直接贴代码谁帮你调试啊
前台数据已经到后台, 把数据更新到后台时,后台数据没有更新.还是原来的数据.[/quote]数据库连接有没有问题,有没有写个单元测试测试一下?[/quote] 数据库连接没问题, 这个连接代码测试过,之前使用这个代码查询过数据库数据,可以查询出来[/quote] 你把执行的sql 打印出来看看有没有问题 各个字段对应下看看[/quote] sql没有问题啊,我把sql复制在终端执行了一下,可以更新数据库中的值 这个控制台输出来的sql
choose = 201701
已经进入Qquery
Succeeded connecting to the Database!
78
Succeeded connecting to the Database! 更新数据库测试
这是sql执行的过程,查看一下 = update exam set remarks= '通信23系' where exam_week='16-4-5、6' and class_name='教4408(西)'

Succeeded connecting to the Database! 更新数据库测试
这是sql执行的过程,查看一下 = update exam set remarks= '基22础许' where exam_week='16-4-5、6' and class_name='教5103(西)'

Succeeded connecting to the Database! 更新数据库测试
这是sql执行的过程,查看一下 = update exam set remarks= '科学' where exam_week='16-4-5、6' and class_name='教5201(西)'
[/quote] 有没有异常出来 你捕获一下 打出来看看
  • 打赏
  • 举报
回复
首先execute方法的返回值是:如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回 false 肯定是false,但是为什么没有更新成功就不知道了
6饼 2017-03-09
  • 打赏
  • 举报
回复
引用 15 楼 sz_lv 的回复:
我说的提交是 你执行完update 是不是没有执行commit呀...
显示的是自动提交啊 mysql> show variables like '%autocommit%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | autocommit | ON | +---------------+-------+
sz_lv 2017-03-09
  • 打赏
  • 举报
回复
我说的提交是 你执行完update 是不是没有执行commit呀...
6饼 2017-03-09
  • 打赏
  • 举报
回复
引用 13 楼 sz_lv 的回复:
是不是没有提交啊
你说的没提交是前台数据没提交,还是后台数据? 前台数据提交后在后台已经可以查到,但是执行后台数据时,就是没有更新
sz_lv 2017-03-09
  • 打赏
  • 举报
回复
是不是没有提交啊
6饼 2017-03-08
  • 打赏
  • 举报
回复
引用 7 楼 u010223407 的回复:
[quote=引用 6楼我是你的主体 的回复:][quote=引用 5 楼 u010223407 的回复:] 你先要确定是哪个环节出的问题,是数据没到后台,还是修改出现异常,直接贴代码谁帮你调试啊
前台数据已经到后台, 把数据更新到后台时,后台数据没有更新.还是原来的数据.[/quote]数据库连接有没有问题,有没有写个单元测试测试一下?[/quote] 数据库连接没问题, 这个连接代码测试过,之前使用这个代码查询过数据库数据,可以查询出来
我爱娃哈哈 2017-03-08
  • 打赏
  • 举报
回复
引用 6楼我是你的主体 的回复:
[quote=引用 5 楼 u010223407 的回复:] 你先要确定是哪个环节出的问题,是数据没到后台,还是修改出现异常,直接贴代码谁帮你调试啊
前台数据已经到后台, 把数据更新到后台时,后台数据没有更新.还是原来的数据.[/quote]数据库连接有没有问题,有没有写个单元测试测试一下?
6饼 2017-03-08
  • 打赏
  • 举报
回复
引用 5 楼 u010223407 的回复:
你先要确定是哪个环节出的问题,是数据没到后台,还是修改出现异常,直接贴代码谁帮你调试啊
前台数据已经到后台, 把数据更新到后台时,后台数据没有更新.还是原来的数据.
6饼 2017-03-08
  • 打赏
  • 举报
回复
再加一些信息,我前台用户名和密码登录后, 进入一个显示数据库数据的table表格界面.我修改表格中的数据后,再传会到后台,现在后台已经有数据了.就是这个table表格中的数据. 然后我想着一行一行的进行更新,循环取出每一行的数据, 取出一行数据,就调用一次更新的方法.就是最上面的代码. 已经排除了sql语句的问题,sql语句是正确的. 还有连接的代码也是可以的,我写了一个查询的测试代码,可以查出数据来. 就是stmt.execute(sqlUpdateTable)的返回值是0,不应该是0啊,这个方法的返回值是此次执行影响的行数.应该是1啊. 也就是说这个方法,根本没有执行吗? 执行完后台所有的数据还是没有变. 这个问题困扰了我两天了.mysql报错的问题已经解决了.现在也不报错.数据也没有更改....求救啊
我爱娃哈哈 2017-03-08
  • 打赏
  • 举报
回复
你先要确定是哪个环节出的问题,是数据没到后台,还是修改出现异常,直接贴代码谁帮你调试啊
6饼 2017-03-08
  • 打赏
  • 举报
回复
引用 9 楼 u010223407 的回复:
[quote=引用 8 楼 u013492736 的回复:] [quote=引用 7 楼 u010223407 的回复:] [quote=引用 6楼我是你的主体 的回复:][quote=引用 5 楼 u010223407 的回复:] 你先要确定是哪个环节出的问题,是数据没到后台,还是修改出现异常,直接贴代码谁帮你调试啊
前台数据已经到后台, 把数据更新到后台时,后台数据没有更新.还是原来的数据.[/quote]数据库连接有没有问题,有没有写个单元测试测试一下?[/quote] 数据库连接没问题, 这个连接代码测试过,之前使用这个代码查询过数据库数据,可以查询出来[/quote] 你把执行的sql 打印出来看看有没有问题 各个字段对应下看看[/quote] sql没有问题啊,我把sql复制在终端执行了一下,可以更新数据库中的值 这个控制台输出来的sql
choose = 201701
已经进入Qquery
Succeeded connecting to the Database!
78
Succeeded connecting to the Database! 更新数据库测试
这是sql执行的过程,查看一下 = update exam set remarks= '通信23系' where exam_week='16-4-5、6' and class_name='教4408(西)'

Succeeded connecting to the Database! 更新数据库测试
这是sql执行的过程,查看一下 = update exam set remarks= '基22础许' where exam_week='16-4-5、6' and class_name='教5103(西)'

Succeeded connecting to the Database! 更新数据库测试
这是sql执行的过程,查看一下 = update exam set remarks= '科学' where exam_week='16-4-5、6' and class_name='教5201(西)'
我爱娃哈哈 2017-03-08
  • 打赏
  • 举报
回复
引用 8 楼 u013492736 的回复:
[quote=引用 7 楼 u010223407 的回复:] [quote=引用 6楼我是你的主体 的回复:][quote=引用 5 楼 u010223407 的回复:] 你先要确定是哪个环节出的问题,是数据没到后台,还是修改出现异常,直接贴代码谁帮你调试啊
前台数据已经到后台, 把数据更新到后台时,后台数据没有更新.还是原来的数据.[/quote]数据库连接有没有问题,有没有写个单元测试测试一下?[/quote] 数据库连接没问题, 这个连接代码测试过,之前使用这个代码查询过数据库数据,可以查询出来[/quote] 你把执行的sql 打印出来看看有没有问题 各个字段对应下看看
6饼 2017-03-07
  • 打赏
  • 举报
回复
引用 3 楼 qq_37806499 的回复:
打个断点看一下就好了,粗略估计是你那个ifelse的问题。。
我把if else 去掉了,还是报这个错误
qq_37806499 2017-03-07
  • 打赏
  • 举报
回复
打个断点看一下就好了,粗略估计是你那个ifelse的问题。。
6饼 2017-03-07
  • 打赏
  • 举报
回复
现在已经不报错了,但是数据还是没有被修改, 有没有遇到过这样的问题....不要沉啊
加载更多回复(1)

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧