首页 > 其他分享 >自增长主键回显实现,批量数据插入

自增长主键回显实现,批量数据插入

时间:2024-03-06 13:33:28浏览次数:26  
标签:回显 批量 System 插入 println 主键 out

 1 package com.atsyc.api.preparedstatement;
 2 
 3 import org.junit.Test;
 4 
 5 import java.sql.*;
 6 
 7 public class PSOtherPart {
 8     /*
 9      * TODO:
10      *      t_user插入一条数据,并且获取数据库自增长的主键
11      *      使用总结:
12      *              1.在创建prepareStatement的时候,告知,携带回数据库增长的主键
13      *              2.获取装主键值的结果及对象,一行一列,获取对应数据
14      *
15      * TODO:
16      *      使用批量插入的形式插入一万条数据
17      *      使用总结:
18      *              1.路径后面添加?rewriteBatchedStatements=true,允许批量插入
19      *              2.insert into --- values[必须写]语句尾不能添加;结束
20      *              3.不是执行语句每条,是批量添加addBatch();
21      *              4.遍历添加完毕后,统一批量执行
22      */
23     @Test
24     public void returnPrimaryKey() throws Exception {
25         Class.forName("com.mysql.cj.jdbc.Driver");
26         Connection connection = DriverManager.getConnection("jdbc:mysql:///atsyc?rewriteBatchedStatements=true","root","Yican030615");
27         String sql = "INSERT into t_user(account,password,nickname) values (?,?,?)";
28         PreparedStatement statement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
29 
30         long start = System.currentTimeMillis();
31 
32         for(int i=0;i<10000;i++) {
33             statement.setObject(1, "test3"+i);
34             statement.setObject(2, "123333"+i);
35             statement.setObject(3, "主键获取测试员pro"+i);
36             //statement.executeUpdate();  //普通添加执行需要近十秒,下面批量添加仅需0.3秒
37             statement.addBatch();  //不执行,追击到values后面
38         }
39 
40         statement.executeBatch();  //执行批量操作
41 
42         long end = System.currentTimeMillis();
43 
44         /*
45         if(i>0){
46             System.out.println("数据插入成功!");
47             //获取回显的主键
48             //获取装主键的结果集对象 一行一列 id=值
49             ResultSet resultSet = statement.getGeneratedKeys();
50             resultSet.next();
51             int id = resultSet.getInt(1);
52             System.out.println("id = " + id);
53         }else{
54             System.out.println("数据插入失败!");
55         }
56         */
57 
58         System.out.println("执行10000次数据插入消耗的时间 = "+(end-start));
59 
60         statement.close();
61         connection.close();
62     }
63 }

 

标签:回显,批量,System,插入,println,主键,out
From: https://www.cnblogs.com/IrVolcano/p/18056331

相关文章

  • MySQL批量更新10万条数据怎么最快?
    如果10万条数据进行批量更新该怎么操作呢?我们一起来看看具体可以怎么做。mysql批量更新如果一条条去更新效率是相当的慢,循环一条一条的更新记录,一条记录update一次,这样性能很差,也很容易造成阻塞。mysql批量更新共有以下四种办法1、.replaceinto批量更新replace into ......
  • .Net Core AutoFac 批量注入
    先从NuGet包里下载这2个文件然后创建一个类继承:Autofac.ModuleusingSystem.Reflection;usingAutofac;namespaceRBAC_Api{publicclassRbacModule:Autofac.Module{///<summary>///重写Load方法///</summary>///<pa......
  • 蓝牛目录批量生成助手
    蓝牛目录批量生成助手是一款十分专业免费的文件夹批量生成软件,一次性可以生成无限个文件夹,大大节省了用户的时间,蓝牛目录批量生成助手还支持按[随机字母],[随机数字],[随机字符],[序号],时间和日期和输入文件夹前缀名字等等创建文件夹。   本地下载   ......
  • 编辑器蓝图脚本_批量静态网格体资产减面
    介绍这个功能用于静态模型资产的减面工作注意1为100%使用1选中想要减面的模型资产(注意是在资产管理器中)2这里选择减50%的三角面3减面完成蓝图https://blueprintue.com/blueprint/15ew70m6/参考链接https://www.bilibili.com/video/BV14C4y1c7ww/?spm_id_from=333.78......
  • Entity Framework Core 使用HiLo(高低位模式)生成主键
    Hi(高位):数据库生成,比如100、200、300Lo(低位):本地生成,比如101、201、301数据库给本地分配一个范围,范围用于主键的自增。每次连接数据库的时候和当范围用完的时候都会从数据库中重新取出一个范围。实体类:[Table("T_Menu")]publicclassMenu{publicintId{get;set;......
  • 编辑器脚本工具——批量修改场景中的静态网格体
    介绍这个功能可以让用户在场景中批量替换静态模型使用方式在场景中选择完想要更改的静态模型在弹出的窗口选择要替换的模型替换完成蓝图https://blueprintue.com/blueprint/p1p8imoa/......
  • 技术文档 | 使用 OpenSCA 批量扫描 Gitlab 仓库,盘点资产安心过节
    按照下述教程快速批量扫描您的仓库,一旦新的攻击或0Day出现,通过资产清单即可快速定位漏洞及影响范围、有效缩短响应时间。安装opensca-cli方法一:一键安装-Windows(需要PowerShell)iex"&{$(irmhttps://raw.githubusercontent.com/XmirrorSecurity/OpenSCA-cli/master/script......
  • Excel批量插入checkbox的宏代码
    来源网络,作为个人记录使用手动在excel中添加勾选框不复杂,但是添加多个的时候会很麻烦,特别是在做数据分析时,选择框属性应该绑定在对应单元格下,使用普通的填充方式无法到达要求,因此使用VBA宏命令批量添加.1Sub添加复选框()2'标题'3Application.ScreenUpdating=f......
  • Mybatis 批量更新 PostgreSQL 数据库,返回更新行数
    1.拼接成1条sql语句,可返回修改行数。PostgreSQL的批量更新原生sql:updatepersonsetname=tmp.name,age=tmp.age,addr=tmp.addr,num=tmp.num,update_time=tmp.update_timefrom(values(1,'关羽',43,'成都',1,'2021-03-2617:32:2......
  • el-table分页时实现切换分页多选选中效果并且编辑回显默认选中
    <el-tableref="table":data="tableData"borderheight="100%":row-key="getRowKeys"@selection-change="handleSelectionChange"></el-table>关键代码:1::row-key="getRowKeys&quo......