注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接:

package c_increment;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import util.JdbcUtil; /**
*
* 在JDBC中如何获得表中的,自增长的字段值。
*
* 此例:
* 建立在employee和dept表上;
*
* -- 插入数据
* INSERT INTO dept(NAME) VALUES('软件开发部');
* -- 同时再插入员工
* INSERT INTO employee(NAME,deptId) VALUES('张三',1);
* -- 如果是java程序插入部门和员工的时候
* -- 先插入部门的时候,如何知道自增长的值?
* -- 再插入员工的时候,需要自增长产生的部门id!
*
* @author mzy
*
*/
public class Demo01 { public static void main(String[] args) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null; try {
conn = JdbcUtil.getConnection();
/**
* 同时插入一个部门和该部门的员工的数据
*/
String deptSql = "insert into dept(name) values(?)";
String empSql = "insert into employee(name,deptId) values(?,?)";
/**
* 如果获取自增长的生成的值?
* 1)设置是否可以返回自增长的值
* RETURN_GENERATED_KEYS: 可以返回自增长生成值
* NO_GENERATED_KEYS:不能返回自增长的值
*/
stmt = conn.prepareStatement(deptSql, Statement.RETURN_GENERATED_KEYS);
//参数赋值
stmt.setString(1, "软件维护部");
//执行插入部门的sql
stmt.executeUpdate(); /**
* 2)获取自增长的值
* 注意: 该ResultSet只包含了自增长的字段
*
* 为什么是1呢?
* 因为一个表中可以有多个自增长的字段;
* 获得对应的自增长的属性,获取第几个就填几
*/
rs = stmt.getGeneratedKeys();
int deptId = 0;
if(rs.next()){
deptId = rs.getInt(1);
} // 当然还可以通过先插,再查的方式,但是比起这种过于繁琐 // 为什么没关闭,传入参数不相同?导致对象的不同?
stmt = conn.prepareStatement(empSql);
stmt.setString(1, "李四");
stmt.setInt(2, deptId); //执行插入员工的sql
stmt.executeUpdate();
System.out.println("添加成功"); } catch (SQLException e) {
e.printStackTrace();
} finally { JdbcUtil.close(rs, stmt, conn);
}
}
}

JDBC中级篇(MYSQL)——在JDBC中如何获得表中的,自增长的字段值的更多相关文章

  1. Kettle ETL 来进行mysql 数据同步——试验环境搭建(表中无索引,无约束,无外键连接的情况)

    今天试验了如何在Kettle的图形界面(Spoon)下面来整合来mysql 数据库中位于不同数据库中的数据表中的数据. 试验用的数据表是customers: 第三方的数据集下载地址是:http://w ...

  2. 获取一个表中的字段总数(mysql) Navicat如何导出Excel格式表结构 获取某个库中的一个表中的所有字段和数据类型

    如何获取一个表中的字段总数 1.function show columns from 表明: 结果 : 2.functiuon select count(*) from INFORMATION_SCH ...

  3. SQL中 将同一个表中的A列更新到B列,B列更新到A列

    有网友在SKYPE问及,如标题,SQL中 将同一个表中的A列更新到B列,B列更新到A列. 其实这个不是问题,直接写更新语句即可,可以参考下面动画演示: SQL source code: CREATE ...

  4. Linq 中查询一个表中指定的字段

    //Linq中查询一个表中指定的几个字段: ); // FindAllItems()为查询对应表的所有数据的方法: // Where 里面为查询条件 // Select 为查询的筛选条件 new{} ...

  5. B表中的pid对应A表中id,查询A表中数据,根据b表中对应a表中该id的数据数目排序

    B表中的pid对应A表中id,查询A表中数据,根据b表中对应a表中该id的数据数目排序 select a.*,count(*) as c from a left join b on a.id=b.ai ...

  6. JDBC中级篇(MYSQL)——处理大文本(CLOB)

    注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package b_blob_clob; import java.io.FileNotFoundException; import ...

  7. JDBC第一篇--【介绍JDBC、使用JDBC连接数据库、简单的工具类】

    1.什么是JDBC JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API 2.为什么我们要用JDBC 市面上有非常多的数据库,本来我们是需要 ...

  8. 用sqoop将mysql的数据导入到hive表中

    1:先将mysql一张表的数据用sqoop导入到hdfs中 准备一张表 需求 将 bbs_product 表中的前100条数据导 导出来  只要id  brand_id和 name 这3个字段 数据存 ...

  9. mysql数据库中指定值在所有表中所有字段中的替换

    MySQL数据库: 指定值在数据库中所有表所有字段值的替换(存储过程): 1.写一个存储过程,查指定数据库中所有的表名: CREATE PROCEDURE init_replace(in orig_s ...

随机推荐

  1. 前端开发入门到进阶第三集【js和jquery的执行时间与页面加载的关系】

    https://blog.csdn.net/u014179029/article/details/81603561 [原文链接]:https://www.cnblogs.com/eric-qin/p/ ...

  2. 我去!爬虫遇到JS逆向AES加密反爬,哭了

    今天准备爬取网页时,遇到『JS逆向AES加密』反爬.比如这样的: 在发送请求获取数据时,需要用到参数params和encSecKey,但是这两个参数经过JS逆向AES加密而来. 既然遇到了这个情况,那 ...

  3. js中==和===的区别以及总结

    js中==和===的区别以及总结 学习js时我们会遇到 == 和 === 两种符号,现做总结如下 两种符号的定义 "==" 叫做相等运算符 "===" 叫做严格 ...

  4. Qt+腾讯IM开发笔记(一):腾讯IM介绍、使用和Qt集成腾讯IM-SDK的工程模板Demo

    前言   开发一个支持全国的IM聊天,可以有基本的功能,发送文本.图片.文件等等相关内容.   腾讯IM产品 概述   腾讯即时通信IM是腾讯推出的即时聊天程序,当前时间为2020年3月(腾讯IM的优 ...

  5. jquery 阻止表单提交方法

    <form name="message_form" action="?m=mobilecenter&c=index&a=service" ...

  6. Android技术分享| 实现视频连麦直播

    视频连麦产品端核心步骤分析 游客申请连麦/取消申请 主播同意/拒绝申请 音视频发布取消 支持很多观众观看 支持多人连麦 低延时 IM 弹幕 视频连麦技术端调研 emmm,大致可以分为视频采集.编码,传 ...

  7. 就这?Spring 事务失效场景及解决方案

    小明:靓仔,我最近遇到了很邪门的事. 靓仔:哦?说来听听. 小明:上次看了你的文章<就这?一篇文章让你读懂 Spring 事务>,对事务有了详细的了解,但是在项目中还是遇到了问题,明明加了 ...

  8. 🏆(不要错过!)【CI/CD技术专题】「Jenkins实战系列」(3)Jenkinsfile+DockerFile实现自动部署

    每日一句 没有人会因学问而成为智者.学问或许能由勤奋得来,而机智与智慧却有懒于天赋. 前提概要 Jenkins下用DockerFile自动部署Java项目,项目的部署放心推向容器化时代机制. 本节需要 ...

  9. java小程序之随机任务发布器

    需求 自定义任务 随机定时 随机排序 集合输出 搭建 简单项目,所以我使用java 的maven来搭建一个控制台程序,并且使用excel来记录任务 创建任务类(sub) package com.mic ...

  10. 《MySQL实战45讲》(1-7)笔记

    <MySQL实战45讲>笔记 目录 <MySQL实战45讲>笔记 第一节: 基础架构:一条SQL查询语句是如何执行的? 连接器 查询缓存 分析器 优化器 执行器 第二节:日志系 ...