JDBC获得自增长列、序列的最新值

1. JDBC获得MySQL的自增长列

        // 注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		// 建立与数据库的连接。
		Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8", "root", "123456");
		// sql 语句
		String sql = "insert into Grade(GradeName) values (?)";
		// 获得语句执行对象,并发送语句。
		// 同时设置 SQL 语句 和 需要返回的自增长的主键的值
		PreparedStatement pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
		pstmt.setString(1, "测试12");
		int i = pstmt.executeUpdate();
		// 处理结果
		if (i > 0) {
			System.out.println("操作成功");
		} else {
			System.out.println("操作失败");
		}
			
		// 返回数据库生成的自增长主键的值 -- 查询 -- 结果是一行一列的rs
		ResultSet rs = pstmt.getGeneratedKeys();
		if(rs.next()) {
			int auto_increment = rs.getInt(1);
			System.out.println("auto_increment = "+ auto_increment);
		}

2. JDBC获得MySQL的自增长列(2)

		// 注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		// 建立与数据库的连接。
		Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8", "root", "123456");
		// sql 语句
		String sql = "insert into Grade(GradeName) values (?)";
		// 获得语句执行对象,并发送语句。
		// 同时设置 SQL 语句 和 需要返回的自增长的主键的值
		String generatedColumns[] = { "gradeId" };
		PreparedStatement pstmt = conn.prepareStatement(sql, generatedColumns);
		pstmt.setString(1, "测试12");
		int i = pstmt.executeUpdate();
		// 处理结果
		if (i > 0) {
			System.out.println("操作成功");
		} else {
			System.out.println("操作失败");
		}
			
		// 返回数据库生成的自增长主键的值 -- 查询 -- 结果是一行一列的rs
		ResultSet rs = pstmt.getGeneratedKeys();
		if(rs.next()) {
			int auto_increment = rs.getInt(1);
			System.out.println("auto_increment = "+ auto_increment);
		}

3. JDBC获得Oracle的序列值

		// 注册驱动
		Class.forName("oracle.jdbc.OracleDriver");
		// 建立与数据库的连接。
		Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE", "scott", "tiger");
		// sql 语句
		String sql = "insert into Grade(Grade_Id,Grade_Name) values (seq_grade.nextval,?)";
		// 获得语句执行对象,并发送语句。
		// 同时设置 SQL 语句 和 需要返回的自增长的主键的值
		String generatedColumns[] = { "grade_Id" };
		PreparedStatement pstmt = conn.prepareStatement(sql, generatedColumns);
		pstmt.setString(1, "测试11");
		int i = pstmt.executeUpdate();
		// 处理结果
		if (i > 0) {
			System.out.println("操作成功");
		} else {
			System.out.println("操作失败");
		}
			
		// 返回数据库生成的自增长主键的值 -- 查询 -- 结果是一行一列的rs
		ResultSet rs = pstmt.getGeneratedKeys();
		if(rs.next()) {
			int auto_increment = rs.getInt(1);
			System.out.println("auto_increment = "+ auto_increment);
		}

猜你喜欢

转载自blog.csdn.net/Spectre_win/article/details/88746061