今天在做练习时遇到一个问题一直解决不了,请各位大佬帮忙解决。谢谢!
批量更新时老师报这个异常,我输出看了下到第590时就抛出异常导致后续无法继续。不知道怎么解决了。我也查不到原因了,望大家帮忙看看!抛出的异常:
590:530629202
java.lang.StringIndexOutOfBoundsException: String index out of range: 9
at java.lang.String.substring(String.java:1963)
at com.justep.yn.jyt.base.UpdateBaseAreaPuid.dataUpdate(UpdateBaseAreaPuid.java:63)
at com.justep.yn.jyt.base.UpdateBaseAreaPuid.main(UpdateBaseAreaPuid.java:18)
代码如下:
public static void dataUpdate() throws SQLException {
String quary = "select FID,fQUYUBIANHAO from XX WHERE fLEIXING='乡镇'";// 查询
List<Map<String, String>> quqrylist = DBUtils.execQueryforList("oa", quary);
Connection conn = null;
PreparedStatement ps = null;
try {
conn = DBUtils.getAppConn("oa");
for (int i = 0; i < quqrylist.size(); i++) {
int q=i++;
String no=quqrylist.get(i).get("fQUYUBIANHAO").substring(0, 9);
String ffid=quqrylist.get(i).get("FID");
ps = conn.prepareStatement("update XX SET fFUID='"+ffid+"' WHERE fLEIXING='村'  AND SUBSTRING(fQUYUBIANHAO, 1, 9) = '"+no+"'");
ps.executeUpdate();
System.out.println(q+":"+no);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBUtils.CloseConn(conn, ps, null);
}
}}