`

mysql5.1.15和5.1.20在操作数据查询的区别

 
阅读更多

connection创建Statement对象,默认是使用resultSet的读取类型

Statement在编译的时候不进行sql语句的检测,只是把Sql语句看成一个String,只有在驱动程序执行sql语句的时候才去检查sql语句的正确性

 

一个Statement对应一个操作的过程,如果想对多个结果集操作就要创建多个Statement

当你使用一个Statement操作多个结果集的时候,当你在操作第二个结果集的时候就隐含着对第一个结果集的关闭

public java.sql.Statement createStatement()

    throws SQLException

  {

    return createStatement(1003, 1007);

  }

 

  public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency)

    throws SQLException

  {

    checkClosed();

 

    StatementImpl stmt = new StatementImpl(getLoadBalanceSafeProxy(), this.database);

    stmt.setResultSetType(resultSetType);

    stmt.setResultSetConcurrency(resultSetConcurrency);

 

    return stmt;

  }

  在使用Statement操作表的过程,执行executeQuery(sql)执行的过程会有一个锁来锁住Connection对象的锁

  这样对于同一个connection同一时刻只能执行一个操作

5.1.15操作查询数据库的代码

 

public ResultSet executeQuery(String sql)

    throws SQLException

  {

    checkClosed();

 

    MySQLConnection locallyScopedConn = this.connection;

 

    synchronized (locallyScopedConn.getMutex()) {

      this.retrieveGeneratedKeys = false;

......

}

 

 

 //5.1.20操作数据库的代码

//而5.1.20是直接锁主这个connection对象 同时会锁住这个方法

但是5.1.15是锁住connection对象的锁没有锁住这个对象的方法

一个是方法锁 一个代码块锁

 public synchronized ResultSet executeQuery(String sql)

    throws SQLException

  {

    checkClosed();

 

    MySQLConnection locallyScopedConn = this.connection;

 

    synchronized (locallyScopedConn) {

      this.retrieveGeneratedKeys = false

...}

 

 

个人理解在性能方面影响不会很大 但是在多线程环境中肯定还是有影响,因为如果在方法加锁表示进入这个方法的线程会先锁住这个方法,其它线程只能等待,而代码块表示只有进入代码块的线程才会锁住,而可以同时多个线程进入这个方法,进入代码块的时候会处于等待。

分享到:
评论

相关推荐

    mysql-connector-java-5.1.15-bin.jar.zip

    总的来说,`mysql-connector-java-5.1.15-bin.jar`是Java开发者连接到MySQL数据库的关键组件,它的存在使得Java应用程序能够高效、可靠地操作MySQL数据。在使用时,需要注意版本兼容性、安全性和正确配置,确保项目...

    mysql-connector-java-5.1.15.jar

    `mysql-connector-java-5.1.15.jar`文件包含了所有必要的类和资源,Java应用程序可以通过加载这个驱动来建立到MySQL服务器的连接,执行SQL查询,处理结果集,以及进行其他数据库操作。要使用这个驱动,开发者通常...

    mysql-connector-java-5.1.15

    它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够方便地在MySQL数据库上执行CRUD(创建、读取、更新、删除)操作。"mysql-connector-java-5.1.15"是这个驱动的一个特定版本,...

    mysql-connector-java-5.1.15-bin

    总的来说,`mysql-connector-java-5.1.15-bin.jar`是Java开发者连接MySQL数据库的必备组件,它简化了Java应用程序与MySQL之间的数据交互,使得开发者能够利用强大的Java生态系统进行数据库操作。

    mysql-connector-java-5.1.15-bin.jar

    MySQL Connector/J是MySQL数据库与Java应用程序之间的重要桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够通过编写Java代码来访问和操作MySQL数据库。"mysql-connector-...

    mysql-connector-java-5.1.15.zip

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的桥梁,它是一个实现了Java Database Connectivity (JDBC) API的驱动程序,使得Java开发者能够轻松地在Java环境中访问和操作MySQL数据库。"mysql-connector-...

    java连接mysql的jdbc包mysql-connector5.1.15

    `mysql-connector5.1.15`是MySQL官方提供的JDBC驱动包,它使得Java程序能够与MySQL数据库进行通信,执行SQL查询、更新数据以及管理数据库资源。 在Java程序中使用MySQL JDBC驱动,首先需要将`mysql-connector-java-...

    mysql-connector-java-5.1.15.tar.gz

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的桥梁,它提供了JDBC(Java Database Connectivity)驱动程序,使得Java开发者能够方便地在Java应用中操作MySQL数据库。`mysql-connector-java-5.1.15.tar.gz...

    mysql-connector-java-5.1.15-bin(1).jar

    在eclipse中导入jar包。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    mysql-connector-java-5.1.15-bin+jad.exe

    用myeclipse开发网站是会用到的,在连接mysql数据库是需要添加的包,还有class文件的反编译工具jad。

    mysql及相关资源

    安装这个MSI文件将帮助你在Windows操作系统上建立本地MySQL服务器,以便进行数据存储和管理。 其次,`mysql-connector-java-5.1.15-bin.jar`是MySQL的Java连接器,它是Java应用程序连接到MySQL数据库的桥梁。这个...

    FineBI V5.1.15安装包

    FineBI V5.1.15安装包

    官方原版源码 spring-framework-5.1.15.RELEASE.zip

    5.1.15.RELEASE版本是Spring Framework的一个稳定版本,它包含了众多优化和改进,为开发者提供了更高效、更稳定的开发环境。本文将对这一版本的源码进行深入解析,帮助读者理解其内部机制和设计原理。 首先,我们来...

    scala连接mysql

    这使得Scala成为构建数据密集型应用的理想选择,尤其是在需要处理大量数据或者需要高性能查询的场景下。理解如何设置连接参数、导入JDBC驱动以及执行SQL语句是 Scala 开发者与MySQL数据库交互的基础。

    mysql-connector-java

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的重要桥梁,它是一个实现了JDBC(Java Database Connectivity)规范的驱动程序,使得Java开发者能够方便地在Java应用中连接和操作MySQL数据库。MySQL ...

    mysql jdbc driver

    5. 关闭资源:在操作完成后,别忘了关闭`ResultSet`、`Statement`和`Connection`,以释放数据库资源。 `license.txt`文件通常是MySQL JDBC驱动的许可协议,详细说明了该驱动的使用条款和限制。在商业项目中,确保...

    Dreamweaver8.0连接Mysql数据库全攻略[收集].pdf

    在本文中,我们将详细介绍如何使用 Dreamweaver 8.0 连接 Mysql 数据库,并提供相应的安装和配置步骤。 一、安装 Dreamweaver 8.0 Dreamweaver 8.0 是 Macromedia 公司推出的网页设计软件,支持连接多种数据库。...

    JDBC链接MySql插件

    了解并熟练使用JDBC和MySQL Connector/J是Java开发人员处理数据库任务的基础,这包括数据的增删改查、事务处理、数据库连接管理等。正确配置和使用这些工具能有效地增强应用程序与数据库之间的交互。

    mysql-connector-java、ojdbc、smartupload

    总结起来,`mysql-connector-java`、`ojdbc`和`smartupload`是Java开发中不可或缺的工具,它们分别解决了数据库连接(特别是MySQL和Oracle)以及文件上传的需求。通过理解和熟练运用这些组件,开发者可以更高效地...

Global site tag (gtag.js) - Google Analytics