SSH中怎么获取sequence

平台是SSH,现在有个字段(不是主键)需要记录sequence中获取的值,不知道怎么获取sequence,直接写select H_sequence.nextval from dual报错,不知道有没有其他方法,谢各位。

报的啥错,可以贴出来

1、首先这是oracle数据库
2、如果你用hibernate,因为dual是oracle的虚拟表 ,因此不能直接用hsql的方式获取数据值
3、建议使用createsqlquery方法获取
4、本身写的SQL是没问题的

不知道你连接数据库用滴是什么方式~!!
public class DataSourceConn extends BasicDataSource{

public DataSource getDataSource() throws SQLException {

    DataSource dataSource = null;

    super.setDriverClassName("oracle.jdbc.driver.OracleDriver");
    super.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");
    super.setUsername("SCOTT");
    super.setPassword("tiger");

    try {
        dataSource = super.createDataSource();
    } catch (SQLException e) {
        e.printStackTrace();
    }

    return dataSource;
}

}

public class TestJDBC {
protected static Logger logger = Logger.getLogger(GgcsServiceHelper.class);

public static int test() throws Exception {

    DataSourceConn conn = new DataSourceConn();

    DataSource dataSource = conn.getDataSource();

    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

    String sql = "select q_wh_log.nextval from dual";

    int queryForInt = jdbcTemplate.queryForInt(sql);

    return queryForInt;

}

public static void main(String[] args) {

    int testMerge;
    try {
        testMerge = test();
        System.out.println(testMerge);
    } catch (Exception e) {
        e.printStackTrace();
    }

}

}

这是我滴代码~!!你可以将序列名改成你滴序列名对照一下~!!然后试一下~!!

oracle 数据库 select rownum from 表名

 public String findSeq(){
         try {  
                String sql = "select PATIENT_SEQ.nextval nextvalue from dual";  
                Integer Seq = (Integer)(this.getSession().createSQLQuery(sql).addScalar("nextvalue", Hibernate.INTEGER) ).uniqueResult();  
                return Seq.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();    

select PATIENT_SEQ.nextval nextvalue from dual