我試圖做一個自動遞增函數,每次用戶創建表Departmenent_id(varchar)
遞增,並且我給了A1,A2 .....我所做的我的自動增量(),我使用的列表,從select Dept_id from Department
得到的結果,並嘗試從這個整數部分分開,並添加到TreeSet
收集和取出最大的元素,並添加到字符串的第一部分,但問題時,我面對當我拿出子字符串像9
這樣的字符串,並將其解析爲整數im得到number format exception
。爲什麼會出現這個問題,我的功能代碼就在這裏數字格式異常,同時轉換子串部分
private String autoIncreament() {
String id = null;
String num = null;
String result = "SELECT DEPARTMENT_ID FROM Department";
TreeSet<Integer> treeSet = new TreeSet<Integer>();
List<Map<String, Object>> result1 = getJdbcTemplate().queryForList(
result);
for (Map<String, Object> map : result1) {
id = (String) map.get("DEPARTMENT_ID");
System.out.println("id=" + id);
num = id.substring(1);
int number = Integer.parseInt(num);
treeSet.add(number);
}
Integer in = treeSet.pollLast();
int c=in.intValue();
c++;
id = id +c ;
/* System.out.println("jcak="+rowSet.getRow()); */
return id;
}
我的異常細節
19 Dec, 2012 11:25:14 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org[email protected]5d764be1: startup date [Wed Dec 19 11:25:14 IST 2012]; root of context hierarchy
19 Dec, 2012 11:25:14 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [mybeans.xml]
19 Dec, 2012 11:25:14 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.s[email protected]7b5a6029: defining beans [dataSource,employeeDaoImpl,departmentdao]; root of factory hierarchy
19 Dec, 2012 11:25:14 AM org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
INFO: Loaded JDBC driver: com.mysql.jdbc.Driver
[email protected]
id=9
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at com.nousinfo.tutorial.employee.dao.impl.DepartmentDAOImpl.autoIncreament(DepartmentDAOImpl.java:113)
at com.nousinfo.tutorial.employee.dao.impl.DepartmentDAOImpl.getDepartment(DepartmentDAOImpl.java:47)
at AccessClass.main(AccessClass.java:34)
你確定你只提取數字? – Smit
這不是遞增序列號的好邏輯。爲ID生成器使用單獨的表格。如果你使用JPA,你可以使用TableGenerator – vels4j
你可以有一個Table IDGenerator的列1.TableName 2.LastSeqNumber。每當添加新行時增加最後一個seq編號 – vels4j