package com.mysql;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.Date;

public class InsertTest {

public static void main(String[] args) throws ClassNotFoundException, SQLException {

final String url = "jdbc:mysql://127.0.0.1/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";

final String name = "com.mysql.jdbc.Driver";

final String user = "root";

final String password = "root";

Connection conn = null;

Class.forName(name);//指定连接类型

conn = DriverManager.getConnection(url, user, password);//获取连接

if (conn != null) {

System.out.println("获取连接成功");

insert(conn);

} else {

System.out.println("获取连接失败");

}

}

public static void insert(Connection conn) {

// 开始时间

Long begin = new Date().getTime();

// sql前缀

String prefix = "INSERT INTO t_teacher (name, age) VALUES ";

try {

// 保存sql后缀

StringBuffer suffix = new StringBuffer();

// 设置事务为非自动提交

conn.setAutoCommit(false);

// 比起st,pst会更好些

PreparedStatement pst = (PreparedStatement) conn.prepareStatement(" ");//准备执行语句

// 外层循环,总提交事务次数

for (int i = 1; i <= 100; i++) {

suffix = new StringBuffer();

// 第j次提交步长

for (int j = 1; j <= 100000; j++) {

// 构建SQL后缀

suffix.append("('" + "cxx" + j + "'," + j + "),");

}

// 构建完整SQL

String sql = prefix + suffix.substring(0, suffix.length() - 1);

// 添加执行SQL

pst.addBatch(sql);

// 执行操作

pst.executeBatch();

// 提交事务

conn.commit();

// 清空上一次添加的数据

suffix = new StringBuffer();

}

// 头等连接

pst.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

// 结束时间

Long end = new Date().getTime();

// 耗时

System.out.println("1000万条数据插入花费时间 : " + (end - begin) / 1000 + " s");

System.out.println("插入完成");

}

}

//数据库驱动jar包可以翻到jdk/jre/lib/etx下

//数据库插入数据的事件消耗大多在提交事务次数上,可以选择每10000次或10w次提交一次事务。

//如果提交事务被拒绝可以通过 show VARIABLES like '%max_allowed_packet%'; 观察数据库允许提交的package大小

//解决package大小:https://www.jb51.net/article/140790.htm

// 其执行sql大致原理为 insert into table (name,age) values ("zhang",12),("zhang",13)("zhang",14)("zhang",15)

java对数据库性能测试的更多相关文章

  1. 【原创】相对完整的一套以Jmeter作为工具的性能测试教程(接口性能测试,数据库性能测试以及服务器端性能监测)

    准备工作 jmeter3.1,为什么是3.1,因为它是要配合使用的serveragent所支持的最高版本,下载链接 https://pan.baidu.com/s/1dWu5Ym JMeterPlug ...

  2. Jmeter之数据库性能测试

    公司的**产品急待上线,但查询订单操作响应很慢,为了准确定位问题,特对几个大数据查询语句进行性能测试. 环境介绍:数据库用的MYSQL,采用分布式布置,本次单压测一台数据库服务器,查询待支付订单.待消 ...

  3. JAVA与数据库MySQL相连接

    JDBC(Java数据库连接体系结构): 是Java实现数据库访问的应用程序编程接口,主要功能是管理存放在数据库中的数据.通过接口对象,应用程序可以完成与数据库的连接,执行SQL语句,从数据库中获取结 ...

  4. mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?

      本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...

  5. 【java 获取数据库信息】获取MySQL或其他数据库的详细信息

    1.首先是 通过数据库获取数据表的详细列信息 package com.sxd.mysqlInfo.test; import java.sql.Connection; import java.sql.D ...

  6. Java与数据库之间时间的处理

    Java与数据库之间时间的处理 在数据库中建表: DROP TABLE IF EXISTS `times`; CREATE TABLE `times` ( `id` int(11) NOT NULL ...

  7. 【助教】Java获取数据库数据展示

    本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...

  8. (转)java读取数据库表信息,子段

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  9. Java免费开源数据库、Java嵌入式数据库、Java内存数据库

    Java免费开源数据库.Java嵌入式数据库.Java内存数据库 http://blog.csdn.net/leiyinsu/article/details/8597680

随机推荐

  1. python实现二分叉查找

    *二分叉查找就是折半查找 比如12345这几个数字当中找2,他会先找到这五个数字中的中坚的那个与2进行比较,比如中间的3>2他就认为3以后的不用查找了,然后查找3左边的,即123,再把这个分半, ...

  2. Top 命令数据分析

    一.top 命令详解 当前时间 20:27:12 当前系统运行时间 3:18秒 1个用户 系统负载平均长度为 0.00,0.00,0.00(分别为1分钟.5分钟.15分钟前到现在的平均值) 第二行为进 ...

  3. springdata jpa基本注解

    Springdata jpa的基本注解 1:@Entity @Entity注解用在实体类声明语句前,说明该Java类为实体类,将映射到指定的数据库表. 2:@Table @Table注解用在当实体类与 ...

  4. JAVA设计模式之工厂系列(factory)

    任何可以产生对象的方法或者类,都可以称之为工厂.单例就是所谓的静态工厂. 为什么jdk中有了new,还需要工厂呢? a.灵活的控制生产过程 b.给对象加修饰.或者给对象加访问权限,或者能够在对象生产过 ...

  5. 王颖奇 201771010129 第三周 Java基本程序设计总结

    实验三 Java基本程序设计 实验时间 2018-9-13 201771010129 王颖奇 1.实验目的与要求 (1)进一步掌握Eclipse集成开发环境下java程序开发基本步骤: (2)熟悉PT ...

  6. 我的第一个UWP程序

    1.为什么喜欢UWP 本人无悔入网易云音乐,各种设备上都少不了这个红色图标的软件 从win10发布,网易做了UWP版本的云音乐 应用轻巧.简洁.功能全,接着又下了许多UWP的应用 都给人不一样的感觉, ...

  7. 【HBase】HBase和Hue的整合

    目录 一.修改hue.ini配置文件 二.启动HBase的thrift server服务 三.启动Hue 四.页面访问 一.修改hue.ini配置文件 cd /export/servers/hue-3 ...

  8. 【Kafka】Kafka集群基础操作!新手上路必备~

    目录 bin目录 Topic命令概览 创建Topic 查看Topic 描述Topic Producer生产数据 Consumer消费数据 增加topic分区数 增加配置 删除配置 删除Topic 所有 ...

  9. 【MySQL基础总结】运算符的使用

    运算符的使用 算数运算符 比较运算符 结果只能为TRUE(1)或FALSE(0) 逻辑运算符 运算符的优先级 可以通过括号改变优先级 示例 算数运算符 比较运算符 逻辑运算符

  10. 《学习笔记》.NET Core API搭建

    1.创建 ASP.NET Core Web程序,记住取消HTTPS配置 2.此时一个简单的.NET Core API 架子搭建好了,细心的人可以发现Properties下面不是CS文件,确是launc ...