对于mysql测试案例

package 使用同一个connection;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

public class Main {

public static void main(String[] args) {

String urlString = "";// 数据库连接命令

String usr = "meepo";// 用户名

String passwd = "meepo";// 密码

String driverString = "com.mysql.jdbc.Driver";// 连接驱动命令

urlString = "jdbc:mysql://" + "localhost:5030";

try {

Class.forName(driverString).newInstance();

} catch (InstantiationException | IllegalAccessException

| ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Connection connection = null;

try {

connection = DriverManager.getConnection(urlString, usr, passwd);

connection.createStatement().execute("use test;");

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

ExecutorService executorService = Executors.newCachedThreadPool();

for (int i = 0; i < 1000000; i++) {

try {

final Statement statement = connection.createStatement();

executorService.execute(new Runnable() {

int k = 10;

@Override

public void run() {

// TODO Auto-generated method stub

try {

for (int j = 0; j < 109; j++) {

statement.executeUpdate("update debug set email='fuck"

+ Thread.currentThread() + new Integer(k++).toString()

+ "' where filename='item0';");

}

//while (resultSet.next()) {

//System.out.println(resultSet.getString(2));

//}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

对于mysql而言在其jdbc接口中已经提供了同步方法多个线程共享同一个connection没有问题。而在实际使用中设计到事物时会出现这种情况:

由于jdbc的事物与一个connection关联在一起,因此当一个statment执行完毕需要提交时,如果调用了connection.commit()或者rollback的话可能会导致其他线程中不希望提交的事物提交

java connection 可以有多个statement 吗,JDBC多线程多个statement共享同一个connection相关推荐

  1. java面试题3 牛客:下面有关jdbc statement的说法错误的是

    下面有关jdbc statement的说法错误的是? A JDBC提供了Statement.PreparedStatement 和 CallableStatement三种方式来执行查询语句, 其中 S ...

  2. java中statement对象的作用_java中Statement 对象

    1.创建Statement对象 建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句.Statement 对象用 Connection 的方法 createStatement 创建,如下列代码 ...

  3. java.net.ConnectException: Call From s150/192.168.109.150 to s150:8020 failed on connection excepti

    启动hive遇到连接的问题: Exception in thread "main" java.lang.RuntimeException: java.net.ConnectExce ...

  4. jdbc mysql查询显示图片_在实现JDBC时如何显示存储引擎-MySQL CONNECTION查询?

    使用SELECT ENGINE显示存储引擎名称.让我们首先创建一个表-create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREME ...

  5. 【学习笔记】JDBC:java提供的专门操纵数据库的API JDBC驱动程序的类型 JDBC常用的类与接口

    JDBC技术 JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口,指定了统一的访问各种关系型数据库的标准接口,JDBC是一种底层的API,因此访问数据库 ...

  6. spring 是如何保证一个事务内获取同一个Connection?

    前言 关于Spring的事务,它是Spring Framework中极其重要的一块.前面用了大量的篇幅从应用层面.原理层面进行了比较全方位的一个讲解.但是因为它过于重要,所以本文继续做补充内容:Spr ...

  7. java web之数据库的连接(使用JDBC连接sql server)

    一.安装JDBC驱动程序 二.加载驱动程序并建立连接对象 1.sql server的连接代码: 2.关于这里的用户名和密码 3.解决在用sa登录时可能出现的问题 三.建立数据库 四.在servlet中 ...

  8. java web之数据库的连接(使用JDBC连接sql server 2017)

    一.安装JDBC驱动程序 二.加载驱动程序并建立连接对象 1.sql server的连接代码: 2.关于这里的用户名和密码 3.解决在用sa登录时可能出现的问题 三.建立数据库 四.在servlet中 ...

  9. java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@44f16719 is still active.

    sqoop 导入mysql 表时,出现以下异常: 19/07/28 07:44:44 ERROR manager.SqlManager: Error reading from database: ja ...

最新文章

  1. 自动驾驶车辆何时实现?近期不会实现的五大原因
  2. 【网址收藏】k8s PLEG介绍及不健康问题排查
  3. python数据清洗实例_python 数据的清理行为实例详解
  4. java复制文件_java多种文件复制方式以及效率比较
  5. jMatter:提高开发速度10倍!
  6. 源码mysql5.7安装过程_mysql5.7 源码安装步骤
  7. 根据数组建立平衡二叉搜索树
  8. 不同用户同时并发测压_程序猿学GO:并发
  9. XsdGen:通过自定义Attribute与反射自动生成XSD
  10. maven pom.xml指定jdk
  11. 利用Scrapy爬取拉勾网某职位信息
  12. Win10环境下使用VS2015编译PJProject
  13. 计算机信息安全专业代码0839,全国网络空间安全学科专业分布
  14. 分布式机器学习联邦学习论文阅读笔记(持续更新)
  15. Vuepress 如何引入百度统计和谷歌统计
  16. windows软链接
  17. 铁矿石需求量matlab代码,铁矿石期货市场分析
  18. 如何适配处理iphoneX底部的横条 ?(转)
  19. 处理器仿存带宽_存储系统性能 - 带宽计算
  20. Commvault发布横向扩展一体机 矛头对准Rubrik和Cohesity

热门文章

  1. 浙江大学PAT上机题解析之1010. 一元多项式求导 (25)
  2. ClientDataSet 探讨
  3. SharePoint:扩展DVWP - 第3部分:把DVWP的功能链接放在同一行中
  4. leetcode 160 简单难度 相交链表
  5. 133.保护频带 134.流量控制在哪些层实现
  6. 实时动态测量技术的不足与改进方法
  7. matlab保存数据
  8. DB9公母头引脚定义
  9. 010_Select选择器
  10. 009_logback本地Appender