1.ResultSet
由于在实际操作中,查询是要经常用到的,所以ResultSet还是很重要的,它用于封装查询获得的结果 。
这里的next()方法类似于集合的迭代器next()遍历方法,返回值均为boolean类型。因此可采用while循环语句遍历得到的结果。
尤其要注意的是,getXxx()方法中,如果写索引的话,列的索引是从1开始的,切记不要以为从0开始;也可以通过列的名称得到该列的值。
在使用过程中,通常可以将查询的结果封装到一个对象中,再用集合保存这些对象,就可以通过遍历集合获得每一行的数据。
例:
List<Course> l=new ArrayList<>();
ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ String cno=rs.getString(1); String cname=rs.getString(2); Course course=new Course(); course.setCno(cno); course.setCname(cname); l.add(course); }
2.PreparedStatement
可以防止SQL注入,达到保护的目的。
SQL注入:
主要步骤:
String sql="select * from course where cno=? and cname=?";
PreparedStatement pstmt= conn.prepareStatement(sql);
pstmt.setString(1,"125");
pstmt.setString(2,"q");
ResultSet rs= pstmt.executeQuery();
String url="jdbc:mysql://127.0.0.1:3306/ddx&usePreparedStatement=true";
开启预编译功能。