搜索
首页数据库mysql教程JDBC获得数据库生成的主键(JDBC、Primary Key)

JDBC获得数据库生成的主键 佟强 http://blog.csdn.net/microtong 在实际开发中,数据库中表的主键经常会由数据库负责生成,INSERT语句插入数据时插入除了主键以外的字段。很多情况下,当INSERT语句提交给数据库引擎执行完成后,程序需要获得生成的主键以便根

    JDBC获得数据库生成的主键 佟强 http://blog.csdn.net/microtong

 

    在实际开发中,数据库中表的主键经常会由数据库负责生成,INSERT语句插入数据时插入除了主键以外的字段。很多情况下,当INSERT语句提交给数据库引擎执行完成后,程序需要获得生成的主键以便根据主键查询插入的记录。JDBC通过在调用语句对象的executeUpdate()方法时,给出第二个参数Statement.RETURN_GENERATED_KEYS 来说明希望数据库引擎返回生成的主键。生成的主键以结果集的形式返回,程序调用语句对象的getGeneratedKeys() 方法得到一个结果集。遍历这个结果集,即得到数据库生成的主键。
    我们以MySQL5.0数据库为例,创建会员表“member”,其中字段ID是数据负责生成的自动增量的整数。下列SQL语句创建会员表:
/* 创建MySQL5.0 表member*/
  create table member(
    id int not null auto_increment ,  /*数据库自动生成的主键*/
    name varchar(100),           /*会员姓名*/
    email varchar(255),           /*电子邮件*/
    primary key (id)
  )type = InnoDB default character set gbk;

获得主键的代码  GeneratedKey.java

package cn.oakcms;
import java.sql.*;
public class GeneratedKey {
    public static void main(String[] args) {
        Connection conn = null;  //连接对象
        Statement stmt = null;   //语句对象
        ResultSet rs = null;      //结果集
        try{
            //加载MySQL驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //连接字符串
            String url = "jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=gbk";
            //建立数据库连接
            conn = DriverManager.getConnection(url,"root","");
            //创建语句对象
            stmt = conn.createStatement();
            //INSERT语句
            String sql = "insert into member(name,email) values('张三','zhangsan@gmail.com') ";
            //执行INSERT语句,说明要返回数据库生成的主键
            int count = stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
            System.out.println("成功插入"+count+"条记录!");
            //产生的主键以结果集的形式返回
            rs = stmt.getGeneratedKeys();
            //遍历结果集,输出主键,实际上结果集只有一条记录
            while(rs.next()){
                long id = rs.getLong(1);
                System.out.println("产生的主键是:"+id);
            }
            //关闭结果集、语句、连接
            rs.close(); stmt.close(); conn.close();
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(rs!=null) try{rs.close();}catch(Exception ignore){}
            if(stmt!=null) try{stmt.close();}catch(Exception ignore){}
            if(conn!=null) try{conn.close();}catch(Exception ignore){}
        }
    }
}
程序的运行结果如下,每次运行都将插入一条新的记录,生成一个新的ID。
        成功插入1条记录!
        产生的主键是:6


OakCMS内容管理系统 http://www.oakcms.cn

 

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Java8(291)之后禁用了TLS1.1使JDBC无法用SSL连接SqlServer2008怎么解决Java8(291)之后禁用了TLS1.1使JDBC无法用SSL连接SqlServer2008怎么解决May 16, 2023 pm 11:55 PM

Java8-291之后,禁用了TLS1.1,使JDBC无法用SSL连接SqlServer2008怎么办,以下是解决办法修改java.security文件1.找到jre的java.security文件如果是jre,在{JAVA_HOME}/jre/lib/security中,比如????C:\ProgramFiles\Java\jre1.8.0_301\lib\security如果是Eclipse绿色免安装便携版在安装文件夹搜索java.security,比如????xxx\plugins\org

战双帕弥什露西亚深红之渊怎么获得战双帕弥什露西亚深红之渊怎么获得Mar 25, 2024 pm 05:31 PM

玩家在战双帕弥什中进行游戏时可以获得露西亚深红之渊,有很多玩家不知道露西亚深红之渊怎么获得,玩家可以通过研发获取,或者在幻痛囚笼商店兑换。战双帕弥什露西亚深红之渊怎么获得研发获取1、玩家可以在研发系统中抽取获得,这包括基准卡池、主题限定卡池和命运限定卡池,2、在这些卡池中露西亚·深红之渊的基础掉率为1.50%,但如果玩家在卡池中抽取到露西亚·深红之渊其掉率会增加到1.90%。幻痛囚笼商店兑换1、玩家可以通过在幻痛囚笼商店使用幻痛伤痕来兑换露西亚·深红之渊的碎片。2、每周可以最多兑换30个碎片,集

如何在Win11系统中获得管理员权限如何在Win11系统中获得管理员权限Mar 08, 2024 pm 10:00 PM

在Win11系统中获得管理员权限是非常重要的,因为管理员权限可以让用户在系统中执行各种操作,如安装软件、修改系统设置等。在Win11系统中获得管理员权限可以通过以下几种方法实现:第一种方法是通过用户账户控制设置。在Win11系统中,用户账户控制是一个用来管理用户权限的功能,通过它,用户可以调整自己的权限等级。要获得管理员权限,用户可以进入“设置”界面,选择“

艾尔登法环托雷特怎么获得艾尔登法环托雷特怎么获得Mar 11, 2024 am 11:40 AM

托雷特是艾尔登法环这款游戏中的灵马,有很多玩家不知道艾尔登法环托雷特怎么获得,玩家召唤托雷特需要获得灵马哨笛,装备在快捷道具栏后,用快捷键使用即可召唤灵马托雷特。艾尔登法环托雷特怎么获得答:需要获得灵马哨笛。1、玩家召唤托雷特需要获得灵马哨笛。2、玩家从新手出生点来到风暴之路前的赐福点,在篝火旁坐下来,会出现女主角【梅琳娜】,她会给你一个【灵马哨笛】戒指。3、玩家把“灵马哨笛”装备到快捷道具栏后再使用灵马哨笛,就可以召唤托雷特的骏马灵魂了。4、骑上灵马托雷特后,可以进行二段跳,能够跳到走路无法跳

古龙风云录白发烟斗怎么获得古龙风云录白发烟斗怎么获得Feb 29, 2024 pm 01:04 PM

古龙风云录游戏里有很多成就,部分成就是与收集品相关的,当我们遇到孙小红之后,还会触发跟孙白发之间的故事,其中白发烟斗需要拿到这个烟斗才能完成,下面就为大家带来古龙风云录白发烟斗达成方法。古龙风云录白发烟斗达成方法1.这个成就需要注意要在孙小红好感任务未完成第四章结束后。2.孙小红告知爷爷不见了,然后前往洛阳长亭寻找孙白发的下落。3.得知孙白发已经死于上官金虹之手,在地上找到孙白发的烟杆,获得“白发烟斗”。要点:如果孙小红的最后一个任务要是在第四章回到仁义庄正殿前完成,孙白发入庄后就触发不了洛阳城

幻兽帕鲁羊毛怎么获得幻兽帕鲁羊毛怎么获得Feb 03, 2024 pm 12:33 PM

幻兽帕中的道具和材料多种多样,其中羊毛是一种重要的资源。羊毛可以用来制作各种道具,但是有些玩家可能不知道如何获取羊毛。下面就给大家介绍一些获取羊毛的方法,希望对大家有所帮助。幻兽帕鲁羊毛获得方法1.帕鲁掉落羊毛可以从多种帕鲁身上获得,包括棉悠悠、米露菲、美露帕、毛掸儿、毛老爹、君王美露帕以及冰帝美露帕等七只帕鲁。在与它们的战斗中,留意羊毛的掉落。2.牧场生产除了通过战斗获取,玩家还可以在牧场中轻松产出羊毛。游戏内工作适应性包含放牧的帕鲁,例如棉悠悠、美路帕这些,通过牧场放牧就可以收获到羊毛。

Java使用JDBC API连接MySQL数据库遇到的常见问题Java使用JDBC API连接MySQL数据库遇到的常见问题Jun 10, 2023 am 09:55 AM

近年来,Java语言的应用越来越广泛,而JDBCAPI是Java应用程序中与数据库交互的一种创造性方法,JDBC基于一种名为ODBC的开放数据库连接标准,使得Java应用程序能够连入任何数据库管理系统(DBMS)。其中,MySQL更是一款备受青睐的数据库管理系统。然而,连接MySQL数据库时,开发人员也会遇到一些常见问题,本文旨在介绍JDBCAPI连接M

Java错误:JDBC错误,如何解决和避免Java错误:JDBC错误,如何解决和避免Jun 24, 2023 pm 02:40 PM

随着Java的广泛应用,Java程序在连接数据库时经常会出现JDBC错误。JDBC(JavaDatabaseConnectivity)是Java中用于连接数据库的编程接口,因此,JDBC错误是在Java程序与数据库交互时遇到的一种错误。下面将介绍一些最常见的JDBC错误及如何解决和避免它们。ClassNotFoundException这是最常见的JDBC

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。