在这一周的学习中出现了很多的错误,这也暴露了我的基础知识不牢固的问题,今天我罗列一下我遇到的几个主要的问题,以及一些十分坑人的小错误,说一下原因。
其中,最多也是最常见的就是空指针异常了,说到空指针就不得不说Java的对象了。简单的说,一个对象一般相应的有它对应的方法,可以调用它的一些方法,而如果你只是创建了一个对象,并没有对它进行赋值,直接调用该对象的方法,就会报空指针异常。简单地说就是如果你要调用该对象的方法,首先你需要确认这个对象被创建且有值,此时才可以调用其相应方法。
再就是关于连接数据库时的一个十分十分小,但特别坑人的错误。为了防止sql注入,我使用了占位符,在进行查询的时候明明sql语句都没有写错,但是它就是报错,在进行了十分头疼的检查,查资料后发现,如果使用了占位符,那么查询语句就应该使用无参的
executeQuery()语句
而不能使用带有sql语句的
executeQuery(sql)
进行查询,虽然这个错误很简单,但是不知道的话确实需要找很久才能找的到。
再就是在写分页代码的时候,需要查询表中的所有数据总数,我查询后一直没办法把他的数据类型转换为int类型的数,也是找了好久,找到了解决办法,但现在找不到那位博主了,,代码如下
ResultSet rs = conn.createStatement().executeQuery(sql);
int result = 0;
if (rs.next()){
result = rs.getInt(1);
}
这样就将类型转换回来了,一开始我使用的是强转为Integer类型,发现并不可以。。。
还有一个就是我将数据从数据库中取出来后,存到实体类中,但是在我在页面展示的时候它老是提示我找不到该属性,我当时是一脸懵,我明明有该属性,为什么找不到?后来查阅了相关资料,发现再给属性命名时,最好不要首字母大写,因为它生成的get方法获得该属性的值时,时将该属性的首字母大写了,这样很可能发生错误,所以所以,大家一定要养成规范写代码的习惯,真的很重要!!!
其他的暂时想不起来,什么时候想起来在说吧。(手动狗头)