1、java.sql.SQLException: Before start of result set
这个 SQL 异常引起异常的原因是因为 之前没有***.next()方法;
当第一次执行***.next()的时候游标位置在表的第一个位置,也就是说处于一个空的位置 但是如果没有***.next() ,则这个位置是空,无法读取到表的数据。注意:一般使用while的循环,如果使用for()循环,易出现此类问题,由于for循环在最后才执行***.next()的方法,将会使第一次查询出现SQLException。
2、特殊的SQL批量删除和模糊查询是不能使用占位符赋值的
delete form t_user where id in (?) x
select * from t_user where username like '%?%' x
原因:当通过占位符为字符串类型的数据进行赋值时,会自动在字符串两边加单引号。
3、首先需要在创建预编译对象时,设置一个常量,Statement.Return_GENERATED_KEYS(值1),可以通过预编译对象ps.getGeneratedKey
rs.next();
rs.getInt();
4、批处理
(1)在url中要加一个参数
-
rewriteBatchedStatements=true
-
那么我们的url就变成了 jdbc:mysql://localhost:3306/test?rewriteBatchedStatements=true
-
这里的?,表示?后面是客户端给服务器端传的参数,多个参数直接使用&分割
5、Idea如果打开后期添加的jar包中的代码,实现方法显示complied code的注释,表明没有对源代码进行编译。
此时需要如下配置: