`
culven
  • 浏览: 5510 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

jdbc执行sql慢的问题

阅读更多
今天发现JDBC的一个怪问题。
同样的sql,在mysql客户端中执行只要0.6、7秒,但是在JDBC中执行却要十二三分钟!这差距也太大了!而且只是其中一张表如此,查看表结构,很正常,没有索引,连主键都没有,就只有字段,字段类型也没有BLOB、CLOB之类的大数据类型,和其他表相比,字段数量也差不错。那就奇怪了,虽说JDBC是要慢些,但是不至于差别几百倍吧。再对比sql,唯一不同的就是这个慢的sql中使用了大量的convert函数,难道是这个原因?把函数去掉,果然速度提升起来了,和其他表一样快了!由于插入该表需要把中文改成GBK编码,因而使用了大量的CONVERT函数,而且数据量上万,导致使用JDBC执行超级慢。至于为何如此,那就不太清楚原因了,后面再研究下,或者有高手指点下就更好。
那怎么解决这个问题呢?很简单,在执行sql的preparedStatement中有个设置编码的方法:preparedStatement.setBytes,把占位符的数据用getBytes(Charset)转换编码后设进去即可,如:
preparedStatement.setBytes(1, valeue.getBytes(Charset.forName("GBK"))); //其中1为对应的占位符位置
​
分享到:
评论

相关推荐

    JDBC连接SQL Server 2008问题

    ### JDBC连接SQL Server 2008问题解析与解决方案 #### 一、SQL Server JDBC连接问题概述 在尝试使用Java Database Connectivity (JDBC)来连接SQL Server 2000/2005/2008时,可能会遇到各种连接失败的问题。这些...

    sqlserver驱动包 jdbc驱动 sqljdbc.jar和sqljdbc4.jar

    3. 执行SQL语句:创建Statement或PreparedStatement对象,然后调用其executeQuery()或executeUpdate()方法。 4. 处理结果:对于查询结果,可以使用ResultSet对象遍历数据;对于更新操作,可以获取影响行数。 5. 关闭...

    jdbc日志慢SQL过滤工具

    - **jdbc**:JDBC是Java编程语言与各种数据库之间通信的标准接口,它允许Java程序连接到数据库,执行SQL查询,更新数据等。本工具显然与JDBC的使用紧密相关,可能是通过监听或拦截JDBC的数据库调用来获取SQL执行信息...

    sqlserver2000-jdbc2.0驱动

    这两个文件是Java应用程序连接到SQL Server 2000的桥梁,它们允许Java代码通过标准的JDBC接口执行SQL查询,插入数据,更新和删除记录。 首先,让我们了解JDBC。JDBC是Java平台的一个标准接口,由Sun Microsystems...

    java通过JDBC链接SQLServer2016

    ### 使用Java通过JDBC连接SQL ...此外,还可以利用JDBC进行更复杂的数据操作,如执行SQL语句、获取查询结果集等,从而满足不同的业务需求。希望本文能帮助大家更好地掌握这一技能,并在未来的工作和学习中加以应用。

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    此异常通常发生在使用JDBC驱动连接SQL Server数据库并尝试执行某些操作(如分页)时。具体而言,当使用`setFirstResult()`和`setMaxResults()`方法对查询结果集进行限制时,如果结果集被标记为只进(forward-only)...

    sqljdbc 1.0 3.0 4.0

    它们提供了诸如建立连接、执行SQL查询、处理结果集等功能。具体来说,以下是一些关键的API和概念: 1. `java.sql.DriverManager`: 这是JDBC的核心类,用于注册和获取数据库驱动,以及建立到数据库的连接。 2. `...

    jdbc连接sqlserver2000 源码 jar

    JDBC提供了一组接口和类,使得Java开发者能够执行SQL语句、处理结果集并管理数据库连接。在连接SQL Server 2000时,我们需要引入特定的JDBC驱动,对于SQL Server 2000,通常是Microsoft的JDBC驱动,也称为"mssql-...

    jdbc+SqlServer

    创建`Statement`对象用于执行SQL语句,如查询、插入、更新或删除数据。以下是如何执行一个简单的SELECT查询: ```java Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * ...

    jdbc 连接 sqlserver2000详细步骤

    通过JDBC,我们可以执行SQL语句、处理结果集以及管理数据库连接。 2. **获取JDBC驱动**: 首先,你需要下载适用于SQL Server 2000的JDBC驱动,通常称为JDBC-ODBC桥接驱动。这个驱动允许Java应用程序通过ODBC(Open...

    springboot log4jdbc 打印完整sql

    当我们执行这个方法时,Log4jdbc 将打印出完整的 SQL 语句,包括参数 replacement: ``` DEBUG [main] JDBC - { conn:100, pstmt:102, sql:SELECT * FROM users WHERE name = ?, params:['John Doe'] } ``` 从上面的...

    JDBC连接SQL server 2005 驱动

    描述中的"NULL"没有提供额外的信息,但通常在处理此类问题时,我们可能需要了解如何下载和配置SQL Server 2005的JDBC驱动,以及如何编写Java代码来执行数据库操作。 **JDBC简介** JDBC是Java平台的一个标准接口,...

    打印JdbcTemplate执行sql

    这篇博客文章的标题"打印JdbcTemplate执行sql"主要涉及如何在使用`JdbcTemplate`时,追踪并打印出执行的SQL语句,这对于调试和性能分析非常有帮助。接下来,我们将深入探讨`JdbcTemplate`的工作原理以及如何实现SQL...

    JDBC连接SQL 2000数据库驱动程序

    在Java编程环境中,JDBC(Java ...总之,使用JDBC连接SQL Server 2000数据库涉及下载驱动包、配置类路径、加载驱动、建立连接和执行SQL操作等一系列步骤。了解这些知识点有助于编写出高效、安全的Java数据库应用。

    sqljdbc42.jar、sqljdbc41.jar 更新日期2017-12-21

    这两个版本的驱动都包含了必要的类和接口,允许Java应用程序执行SQL查询、处理结果集、事务管理和连接管理等任务。 描述中提到"sqlserver数据库,Driver驱动jar包,最新官方原版",意味着这些驱动是由Microsoft官方...

    Jdbc 访问sql 数据库

    它由Sun Microsystems开发并成为Java平台的一部分,允许Java应用程序通过Java API来执行SQL语句,从而实现对数据库的操作,比如查询、插入、更新和删除数据。 在本例中,我们看到如何使用JDBC与SQL Server 2000...

    jdbc连接sqlserver2000的3个jar包

    4. **执行SQL语句**:创建Statement或PreparedStatement对象,编写SQL语句,并调用其`executeQuery()`或`executeUpdate()`方法。 5. **处理结果**:如果你执行的是查询,可以通过ResultSet对象获取结果。如果是更新...

    JDBC下连接Sql2000数据库

    通过上述步骤,你可以使用JDBC成功连接到SQL Server 2000数据库,并执行SQL查询。在实际项目中,可能还需要处理事务、错误处理以及优化性能等方面的问题。学习JDBC不仅是理解数据库连接的基础,也是提升Java应用程序...

    sqljdbc_4.0

    这个驱动程序让Java开发者能够使用标准的JDBC API来执行SQL查询、事务管理和数据操作。以下是关于SQLJDBC_4.0驱动的详细知识点: 1. JDBC接口:JDBC(Java Database Connectivity)是Java平台的标准API,允许Java...

    jdbc-mysql-connector-j-8.0.31.jar jdbc-sqljdbc41.jar

    这个驱动程序使得Java应用程序能够与MySQL数据库进行交互,执行SQL查询、事务处理等操作。JDBC(Java Database Connectivity)是Java平台中的一种标准API,它允许Java程序通过编写Java代码来访问各种类型的数据库。...

Global site tag (gtag.js) - Google Analytics