获得数据库自动生成的主键与调用存储过程

Tesia ·
更新时间:2024-11-13
· 892 次阅读

获取主键  注:此参数仅对insert操作有效。  public static void main(String[] args) throws SQLException {   Connection conn = null;   PreparedStatement st = null;   ResultSet rs = null;   try{    conn = JdbcUtils.getConnection();    String sql = "insert into test(name) values('aaa')";    //出入Statement.RETURN_GENERATED_KEYS参数是要返回生成主键,默认是返回的,写上     为了以后换成别的数据库也行。    st = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);    st.executeUpdate();    //调用getGeneratedKeys方法得到生成的键    rs = st.getGeneratedKeys();    if(rs.next()){     //获取主键     System.out.println(rs.getInt(1));    }   }finally{    JdbcUtils.release(conn, st, rs);   }  }

  调用存储过程

  在MySQL中创建存储过程

delimiter $$ CREATE PROCEDURE demoSp(IN inputParamVARCHAR(255), INOUT inOutParam varchar(255)) BEGIN SELECT CONCAT('zyxw---', inputParam) intoinOutParam; END $$ delimiter ;

//调用 public class Demo {  public static void main(String[] args) throws SQLException {   Connection conn = null;   CallableStatement  st = null;   ResultSet rs = null;   try{    conn = JdbcUtils.getConnection();    //调用存储过程    st = conn.prepareCall("{call demoSp(?,?)}");    //替换占位符    st.setString(1, "aaaaa");    //第二个为类型    st.registerOutParameter(2, Types.VARCHAR);    st.execute();    System.out.println(st.getString(2));   }finally{    JdbcUtils.release(conn, st, rs);   }  } }

  结果集的滚动

  ResultSet提供了对结果集进行滚动的方法:

  next():移动到下一行

  Previous():移动到前一行

  absolute(int row):移动到指定行

  beforeFirst():移动resultSet的前面。

  afterLast() :移动到resultSet的后面。

  例:获取后一条数据

  afterLast();

  Previous();



自动 调用 获得数据 数据 存储 存储过程 数据库

需要 登录 后方可回复, 如果你还没有账号请 注册新账号