如何用java取得在oracle后台取得的sequence的序号的相关推荐

2025-03-04 05:51:33
推荐回答(1个)
回答1:

您好,很高兴为您解答。

public class SeqManager {
  protected String dataSource = "java:/OracleDS";
   public SeqManager() {
   }
   /**
    * 从数据库连接中取的一连接
    *
    * @param String dataSource 为数据源JNDI
    *
    *
    * 返回值为数据库连接
    *
    */
   protected Connection getConnection(String dataSource)
   {
     Connection con = null;
     try
     {
         InitialContext ic = new InitialContext();
         DataSource ds = (DataSource) ic.lookup(dataSource);
         con = ds.getConnection();
         System.out.println("connection is :" + con);
//         con.setAutoCommit(false);
     } catch(NamingException e)
     {
         String err = "连接数据库时出错:找不到JNDI名称" + dataSource;
         System.out.println(e);
         e.printStackTrace();
     } catch (SQLException ex)
     {
         String  err = "连接数据库时出错:创建不了数据库连接";
         System.out.println(ex);
         ex.printStackTrace();
     }
     return con;
   }
   /**
    * 取Sequence的公共方法
    *
    * @param String sql 为传进的SQL语句
    *
    *
    * 返回值为Sequence值
    *
   */
   protected Long getNextValOfSeq(String sql) throws SQLException
   {
     Connection con = getConnection(dataSource);
     PreparedStatement pst = con.prepareStatement(sql);
     ResultSet rs = pst.executeQuery();
     try
     {
       if (rs.next()) {
         return new Long(rs.getLong(1));
       }
       else {
         return null;
       }
     }catch(SQLException e)
     {
       throw e;
     }finally
     {
       rs.close();
       pst.close();
       con.close();
     }
   }
   public Long getNextValOfStudEntrScore() throws SQLException
   {
     String sql = " Select SeqStudEntrScore.NextVal From Dual ";
     try
     {
       return getNextValOfSeq(sql);
     }catch (SQLException e)
     {
       String errorMessage = "取***Sequence时出错.";
       e.printStackTrace();
       throw new SQLException(errorMessage);
     }
   }
}



在jsp里调用这个javaBean
jsp就是一个servlet
操作数据库没什么区别


如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】


希望我的回答对您有所帮助,望采纳!


                                                                                                                             ~ O(∩_∩)O~