JAVA獲取oracle中sequences的最后一個值


項目中,用到一個序列作單號,框架用的是ssh,在dao層去拿的時候,運行時報錯為dual is not mapped,[select *.nextval nextvalue from dual]
后來檢查發現,獲取方式不對,於是改成下面這樣,就可以正常獲取了
    //獲取seq的最后一個值
    public String findSeq(){
         try {  
                String sql = "select PATIENT_SEQ.nextval nextvalue from dual";  
                Integer maxId = (Integer)(this.getSession().createSQLQuery(sql).addScalar("nextvalue", Hibernate.INTEGER) ).uniqueResult();  
                return maxId.toString();  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
            return null;  
    }

 如果集成了HibernateDaoSupport還可以使用一下方法:

public String findSeq(){
        String queryString = "select PATIENT_SEQ.Nextval nextvalue from dual";
return (String) getHibernateTemplate().find(queryString).get(0);
}
1.先返回list集合getHibernateTemplate().find(queryString)
2.取得list的第一個元素:list.get(0);
3.list.get(*)的結果是ojbect,所以要么強轉(String)list.get(0);,要么list.get(0).toString();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM