{eval=Array;=+count(Array);}
题主给的问题描述太过简短,那么答主只能根据自己理解的方向来说说可能出现错误的原因:
一般情况下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和比较传统的hibernate
如果你是用框架是做的那很大的可能是你配置的sql语句做的是无用操作,什么是无用操作呢?现在数据库里面已经没有了学号为1的学生,但是你还删除这条数据,数据库肯定没有反应。不排除有这种可能但是几率比较小。也有可能你传递过来的删除,修改的条件的条件数据,出现问题也有可能导致删除或者修改失败。
如果你是用jdbc去做的,那很有可能sql语句编写有问题,因为sql语句的字符串拼接其中有很多“ ”和‘ ’的拼接:
比如上图看到的,ssex这个字段在数据库中是一个字符类型,所以在sql语句中需要用‘ ’括起来,这里还要拼一个获取过来的条件。所以‘ ’和“ ”之间的拼接真的很容易出问题。
代码代码,坐等代码
总结:出错的具体原因,真的是需要查看代码才能具体解决,这里能给出来的提示也很有限。以上的出错的原因也是答主自己能给出的几个,希望能帮到题主。
如果有小伙伴有其它的提示,请在评论区留言,或者点个关注我们一起探讨探讨。
这个问题的原因可能不止一个,看到同行回答的也都有道理,但有道理的不一定能解决这个问题,我从实际的应用情况,说明一下碰到的这个问题,或许也是一种启发。
Access数据库也称为桌面型的数据库,是Microsoft Office的一个组件,全称为Microsoft Office Access,这个数据库建立比较简单,建数据表时对主键没有特殊的要求,对于没有建主键的数据表,当你在用Access所带的VBA语言进行开发时,使用SQL语言进行相关的操作是没有问题的。
但是,当你用其他语言连接到Access数据库时,一定要注意,有些语言一定要在有主键的情况下才能进行SQL语句操作,不然就有可能表面操作成功,而实际上没有任何改变。
对于JAVA我不太熟悉,只此是一点开发过程中的经验而已,仅作参考。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答1
回答0
回答0
回答