疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

jdbc基本查询方法


 

  jdbc操作数据库时,最基本的三种接口是Statement PrepareStatment CallableStatement

  (1)Statement

  createStatement()

  createStatement(int resultSetType, int resultSetConcurrency)

  createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)(JDBC 3.0)

  resultSetType - 结果集类型,它是 ResultSet.TYPE_FORWARD_ONLY(不可滚动结果集)、 ResultSet.TYPE_SCROLL_INSENSITIVE(可滚动结果集,受数据库更新影响的) 或 ResultSet.TYPE_SCROLL_SENSITIVE(可滚动结果集,不受数据库更新影响的) 之一

  resultSetConcurrency - 并发类型;它是 ResultSet.CONCUR_READ_ONLY (只读结果集)或 ResultSet.CONCUR_UPDATABLE (可更新结果集) 之一。

  resultSetHoldability - 以下 ResultSet 常量之一: ResultSet.HOLD_CURSORS_OVER_COMMIT (提交修改后,不关闭结果集)或 ResultSet.CLOSE_CURSORS_AT_COMMIT (提交修改后,关闭结果集)

  说明:resultSetType,resultSetConcurrency,resultSetHoldability的使用是有限制的。

  有的数据库并不支持可滚动结果集,可更新结果集,提交修改后不关闭结果集。可以通过conn.getMetaData()来获取DataBaseMetaData对象判断是否支持上述功能。

  (2)PrepareStatement

  prepareStatement(String sql)

  prepareStatement(String sql, int resultSetType, int resultSetConcurrency)

  prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)

  prepareStatement(String sql, int autoGeneratedKeys)

  prepareStatement(String sql, int[] columnIndexes)

  prepareStatement(String sql, String[] columnNames)

  autoGeneratedKeys可以为Statement.RETURN_GENERATED_KEYS/NO_GENERATED_KEYS

  eg:PrepareStatement st=conn.prepareStatemnt(sql,Statement.RETURN_GENERATED_KEYS);

  ResultSet rs=st.getGeneratedKeys();

  if (rs.next()){

  int key=ts.getInt(1);

  }

  (3)CallableStatement

  prepareCall(String sql)

  prepareCall(String sql, int resultSetType, int resultSetConcurrency)

  prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)