1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > jdbc 3种获得mysql插入数据的自增字段值的方法_【JDBC】向数据表插入数据时 自动获

jdbc 3种获得mysql插入数据的自增字段值的方法_【JDBC】向数据表插入数据时 自动获

时间:2022-11-15 02:57:33

相关推荐

jdbc 3种获得mysql插入数据的自增字段值的方法_【JDBC】向数据表插入数据时 自动获

数据表设计时,一般都会有一个主键(Key)(自己指定),有时也可以使用联合主键;

有许多数据库提供了隐藏列为表中的每行记录分配一个唯一键值(如:rowid);

当我们没有指定哪一列作为主键key时,数据表可能会含有一个隐含的主键(或者叫唯一键值);

当我们向数据表中插入数据时,对于每一条记录,都会有一个主键与之对应,那么我们如何在向数据表中插入数据时,获取到数据库自动分配的主键呢?

如下给出示例:

上面使用到了PreparedStatement来执行SQL插入,关于PreparedStatement与Statement的用法与区别,可以参考文章:

这里不多介绍;

只需要大体知道一些:

PreparedStatement可以写参数化查询,比Statement能获得更好的性能;

对于PreparedStatement来说,数据库可以使用已经编译过及定义好的执行计划,这种预处理语句查询比普通的查询运行速度更快。

PreparedStatement可以防止SQL注入式攻击;

PreparedStatement可以写动态查询语句;

PreparedStatement与java.sql.Connection对象是关联的,一旦你关闭了connection,PreparedStatement也没法使用了。

PreparedStatement查询默认返回FORWARD_ONLY的ResultSet,你只能往一个方向移动结果集的游标。当然你还可以设定为其他类型的值如:”CONCUR_READ_ONLY”。

占位符的索引位置从1开始而不是0,如果填入0会导致*java.sql.SQLException invalid column index*异常。所以如果PreparedStatement有两个占位符,那么第一个参数的索引时1,第二个参数的索引是2.

KeyHolder是一个接口,下面是它的代码:

GeneratedKeyHolder是KeyHolder接口的默认实现类,他的函数作用如下:

当执行insert语句时,会自动将数据库自动产生的key值保存在GeneratedKeyHolder对象对象中,如下是jdbcTemplete.update()的源码:

mybatis插入操作时,返回自增主键id

mapper.xml 代码

phpstudy命令行中数据表插入中文显示不了的问题

在PHPstudy环境下,做MySQL操作,往数据表里面插入数据的时候,如果是中文的数据就会显示不了或者是问号?. 这个问题搞了我一晚上了,终于知道问题所在. 下载的PHPstudy的MySQL数据库 ...

MyBatis插入时候获取自增主键方法

方法一:(Oralce不支持这种写法) useGeneratedkeys 默认值为 false,含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty ...

向oracle中的表插入数据的方法

向oracle中的表插入数据的方法有以下几种: 假设表名为User 第一种方法:select t.*,rowid from User t;-->点击钥匙那个标记就可向表中添加数据 第二种方法:s ...

SQL-Oracle存储过程-循环A表,向B表插入数据

--存储过程,查询A表,向B表插入数据 create or replace procedure prc_sg_sjtj_config(p_flag out varchar2) IS BEGIN FOR ...

sql实现同时向主表和子表插入数据方法

使用sql语句实现同时向主表和子表插入数据方法: Oracle: -- oracle创建sequence create sequence SEQ_test minvalue 1 maxvalue 99 ...

MySQL之终端(Terminal)管理数据库、数据表、数据的基本操作(转)

MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”. 现在我写MySQL的终端命令操作的文章,是想强化一下自己对于MySQL的理解,总会比使用图形化的 ...

数据库之mysql篇(3)—— mysql创建/修改数据表/操作表数据

创建数据表:create table 数据表名 1.创建表规范 create table 表名( 列名 数据类型 是否为空 自动排序/默认值 主键/外键/唯一键, 列名 数据类型 ...

随机推荐

NOI 4976:硬币

描述 宇航员Bob有一天来到火星上,他有收集硬币的习惯.于是他将火星上所有面值的硬币都收集起来了,一共有n种,每种只有一个:面值分别为a1,a2- an.Bob在机场看到了一个特别喜欢的礼物,想买来 ...

Word Pattern | & II

Word Pattern | Given apatternand a stringstr, find ifstrfollows the same pattern. Examples: pat ...

Extjs中TextField中显示图标

现看实现效果: 实现代码: { width:500, height : 25, fieldLabel : '过滤条件', itemId : 'queryText', labelAlign : 'r ...

virtual box ubuntu 主机和虚拟机实现互相复制粘贴

链接:/article/574c521917db806c8d9dc18c.html 常规高级里共享粘贴板已经选中双向,(我的已经可以了复制粘贴了),如果 ...

设计模式 - 装饰者模式(Decorator Pattern) 具体解释

装饰者模式(Decorator Pattern) 具体解释 本文地址:/caroline_wendy/article/details/26707033 装饰者 ...

[翻译]编写高性能 .NET 代码 第一章:工具介绍 -- Visual Studio

<

随笔:关于去年的WordPress建站的回忆

-02-26 建站 -02-28 选择主题Clearision -03-01 学习插入视频.修改主题

org&period;springframework&period;transaction&period;CannotCreateTransactionException Could not open

org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for ...

hibernate 中 fetch&equals;FetchType&period;LAZY 懒加载失败处理

对这种懒加载问题,最后的做法是利用Spring提供的一个针对Hibernate的一个支持类,其主要意思是在发起一个页面请求时打开Hibernate的Session,一直保持这个Session,使得Hi ...

jdbc 3种获得mysql插入数据的自增字段值的方法_【JDBC】向数据表插入数据时 自动获取生成的主键...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。