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()方法