Mysql 数据库 - Bug记录

1、空指针

  • 翻译:org.json.JSON异常:在字符0处输入结束
  • 原因:
    -如果返回值为空,JSONArray无法把它转换成JSONArray则会报End of input at character 0
    of异常
    -如果返回值不符合json标准,也会报异常
  • 解决办法:查看返回的json数组是否规范、是否为空

 
2、一个空格引发的惨案

  • 原因:
    -mysql语句String sql="select max(cartoon_set_no) as num from cartoon_set where "+ "cartoon_name=' "+cartoon_name +"';";的cartoon_name='后面多了一个空格,你看到了吗?
  • 解决办法:去掉空格

 
3、Expression #2 of SELECT list is not in GROUP BY clause which is not functionally dependent on columns in GROUP BY clause;this is incompatible with sql_mode=only_full_group_by

  • 原因:高版本默认sql_mode=only_full_group_by
  • 解决方法:
    -修改 my.ini(Window下的mysql的my.ini就在mysql8.0目录下)
    -手动添加sql_mode的方式强制指定不需要ONLY_FULL_GROUP_BY
    -在 [mysqld] 下面添加代码: sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

 
4、arameter index out of range (1 > number of parameters, which is 0
翻译:参数索引超出范围(1>参数个数,即0
原因:sql语句少了问号
解决办法:

String sql="select * from name=";
pstmt.setString(1,"cmx") ;

改为有问号的

String sql="select * from name=?";
pstmt.setString(1,"cmx") ;

 
5、could not retrieve transation read-only status server

  • 翻译:无法检索交易只读状态服务器
  • 原因1:
    -8.0的mysql使用了低版本的mysql驱动包
  • 解决方法1:
    -换低版本的驱动包

 

  • 原因2:
    -隔离级别
  • 解决方法2:
    修改隔离级别(不是永久修改)
show variables like 'transaction_%'; 
SET GLOBAL transaction_isolation='READ-COMMITTED';

 
6、Can not issue data manipulation statements with executeQuery()

  • 翻译:无法使用executeQuery()发出数据操作语句
  • 原因:sql更新语句用了statement的executeQuery()
  • 解决方法: sql更新语句应该用statement的execute()方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值