java后台程序方法执行数据库读写报错Connection is read-only。Queries leading to data modification
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java后台程序方法执行数据库读写报错Connection is read-only。Queries leading to data modification相关的知识,希望对你有一定的参考价值。
java后台程序方法执行数据库读写报错
Caused by: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1997)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1964)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1949)
报错异常信息:
我执行的方法,是在service层(事务配置在此层),这个方法是先执行了一个查询,然后在去执行往数据写数据的方法。
事务配置文件:
那些只要求查询数据的方法有写的。
java执行sql报错 ora-00917 missing comma ,可是sql在后台打印出来的我贴在plsql中就可以执行
调试bug的时候批量从excel表中取数据insert进数据库, 少数几条报错 missing comma,当把其中excel某个字段的长度缩短之后(这个字段在数据库定义中不超长),却可以执行。
String sql_a = "insert into t_zckp_xxb (zckp_id,gjrq,zckp_mc,yz,yzje,nzje,ljzj,zjnx,kmdm,syrq,jz,jggg,cqzz,bmmc,ddmc,fzr,dqdm,stz,yxbz,drpcls) values(";
sql_a = sql_a + "'"+zckp_id+"','"+gjrq+"','"+zckp_mc+"',"+yz+","+yzje+","+nzje+","+ljzj+","+zjnx+",'"+kmdm+"',";
sql_a = sql_a + "'"+syrq+"',"+jz+",'"+jggg+"','"+cqzz+"','"+bmmc+"','"+ddmc+"','"+fzr+"','"+dqdm+"','"+stz+"','1','"+drpcls+"'";
sql_a = sql_a + ")";
奇怪的是当我把sql最后的“)”与上一行合并时 程序也不报错了。。
String sql_a = "insert into t_zckp_xxb (zckp_id,gjrq,zckp_mc,yz,yzje,nzje,ljzj,zjnx,kmdm,syrq,jz,jggg,cqzz,bmmc,ddmc,fzr,dqdm,stz,yxbz,drpcls) values(";
sql_a = sql_a + "'"+zckp_id+"','"+gjrq+"','"+zckp_mc+"',"+yz+","+yzje+","+nzje+","+ljzj+","+zjnx+",'"+kmdm+"',";
sql_a = sql_a + "'"+syrq+"',"+jz+",'"+jggg+"','"+cqzz+"','"+bmmc+"','"+ddmc+"','"+fzr+"','"+dqdm+"','"+stz+"','1','"+drpcls+"')";
望达人解答!
我建议你 把每一条sql 都 打印出来对比一下
System.out.println(sql_a ); 打3条 分别看看 每一条 字符串是什么
然后 把你的 第二种情况 也弄进去 打印一下 .. 对比一下. 参考技术A 你这个是不是换行以后有空格,造成的。
一般这样的句子 换行以后有时候会有问题本回答被提问者采纳 参考技术B 你用prepareStatement试试看哦,你这么写看着累。
以上是关于java后台程序方法执行数据库读写报错Connection is read-only。Queries leading to data modification的主要内容,如果未能解决你的问题,请参考以下文章
java执行sql报错 ora-00917 missing comma ,可是sql在后台打印出来的我贴在plsql中就可以执行
呼呼!又报错?突然就蒙了!读写分离客户端远程登录amoeba进入数据库,正常登入后,执行语句都报错,怎么盘?
呼呼!又报错?突然就蒙了!读写分离客户端远程登录amoeba进入数据库,正常登入后,执行语句都报错,怎么盘?
pip安装报错: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connec