Java连接access为什么只有select语句有效果增改删成功但实际数据不变?
题主给的问题描述太过简短,那么答主只能根据自己理解的方向来说说可能出现错误的原因:
代码的原因一般情况下Java连接数据库用的都是jdbc,不知道题主的用最基本的jdbc去写的连接access还是使用框架去配置连接的。
使用框架做配置连接
题主也提到了查询能正常查询,那就证明配置信息内容是完全没有问题的,能够正常使用。那这样的话有可能你做增,删,改的的时候对应的数据本来是没有删除,你的判断写的有问题导致,但是这个可能性应该不大。那就可能是sql语句的问题了,下面在详细的说话sql语句的问题。
使用最原始的jdbc操作
能在增删改上面成功,没有报错那证明你的代码敲的是对的,但是你的对应的引用相互调用多次,可能导致错误,打个比喻:Connection conn=new Connection(连接数据库的字符串);
Statement sta=conn.createStatement();
String sql="添加sql语句";
int count=sta.excute(sql);
然后在下面你可能在次用到Statement对象:
String sql="删除sql语句";
int count=sta.excute(sql);
这个时候你多次使用同一个Statement对象很大可能会出现异常
在可能是你操作的数据库和你查看的数据库不是同一个,刚好都用同样的表格:
比如:
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/exam?characterEncoding=UTF-8","root", "admin");
你现在操作的是exam数据库里面的表格,但是你现在查看的却是其它数据库;这个可能性也有但是估计也不大。
jdbc和比较传统的hibernatesql语句的问题如果你是用框架是做的那很大的可能是你配置的sql语句做的是无用操作,什么是无用操作呢?现在数据库里面已经没有了学号为1的学生,但是你还删除这条数据,数据库肯定没有反应。不排除有这种可能但是几率比较小。也有可能你传递过来的删除,修改的条件的条件数据,出现问题也有可能导致删除或者修改失败。
如果你是用jdbc去做的,那很有可能sql语句编写有问题,因为sql语句的字符串拼接其中有很多“ ”和‘ ’的拼接:
比如上图看到的,ssex这个字段在数据库中是一个字符类型,所以在sql语句中需要用‘ ’括起来,这里还要拼一个获取过来的条件。所以‘ ’和“ ”之间的拼接真的很容易出问题。
代码代码,坐等代码总结:出错的具体原因,真的是需要查看代码才能具体解决,这里能给出来的提示也很有限。以上的出错的原因也是答主自己能给出的几个,希望能帮到题主。
如果有小伙伴有其它的提示,请在评论区留言,或者点个关注我们一起探讨探讨。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有