精华内容
下载资源
问答
  • jdbc测试数据库连接状态

    千次阅读 2018-08-13 11:34:28
    jdbc测试数据库连接状态 通过以下代码可以测试数据库是否连接 import java.sql.Connection; import java.sql.DriverManager; public class a { //数据库驱动 private static final String driver = &...

    jdbc测试数据库连接状态

    通过以下代码可以测试数据库是否连接

    import java.sql.Connection;
    import java.sql.DriverManager;
    
    public class a {
        //数据库驱动 mysql8.0以上版本用com.mysql.cj.jdbc.Driver 8.0以下版本用com.mysql.jdbc.Driver 需要引入对应的jdbc jar包
        private static final String driver = "com.mysql.cj.jdbc.Driver";
        //连接数据库的URL地址
        private static final String url="jdbc:mysql://127.0.0.1:3306/demo4?useUnicode=true&characterEncoding=UTF-8&useSSL=false&&serverTimezone=UTC";
        //数据库的用户名
        private static final String username="root";
        //数据库的密码
        private static final String password="root";
    
        private static Connection conn=null;
    
        //静态代码块负责加载驱动
        static
        {
            try
            {
                Class.forName(driver);
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }
    
        //单例模式返回数据库连接对象
        public static Connection getConnection() throws Exception
        {
            if(conn==null)
            {
                conn = DriverManager.getConnection(url, username, password);
                return conn;
            }
            return conn;
        }
    
        public static void main(String[] args) {
    
            try
            {
                Connection conn =a.getConnection();
                if(conn!=null)
                {
                    System.out.println("数据库连接成功!");
                }
                else
                {
                    System.out.println("数据库连接失败!");
                }
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
    
        }
    }
    
    展开全文
  • 如何使用jmeter进行jdbc测试

    我的环境:

    数据库:mysql 

    jdk:1.7

    jmeter:2.12

    连接数据库的jar文件:mysql-connector-java-5.1.25-bin.jar   云盘下载:http://pan.baidu.com/s/1pJMBpBd


    准备工作

      测试jdbc 首先需将jar文件放到jmeter 目录下。放置位置为 jmeter目录/lib/ext/ 下


    开始测试

      ① 设置线程组  打开jmeter   add--threads(users)--Thread Group




    Name:自定义线程组名

    Comments:备注内容,填写对此线程组的描述

    主要对Thread Properties 进行说明

    Number of Threads(users):线程数,可以理解为虚拟用户数。

    Ramp-Up Period(in seconds):线程的所通的时间(秒为单位)。可以这样理解:例如用100个线程数,设置Ramp-Up 为10,则 100Users / 10seconds = 10users / secound,就是说每秒启动10个线程,10秒运行完。

    Loop Count:循环次数。


    ②配置jdbc 连接 Add -- Config Element--JDBC Connection Configuration 



    vraiable name: 设置变量名(此变量名唯一 )

    connection Pool configration: 数据库连接池的配置,一般情况下使用默认值即可。

    Connection Validation by Pool:

    主要说明下 Database Connection Configuration  数据库的连接信息

    Database Url:数据库的连接地址以及数据库信息  jdbc:mysql://192.168.1.2:3306/bugfree   192.168.1.2为数据库所在服务器的ip  3306 为mysql数据库的端口号, bugfree 为数据库名。(这些值根据自己具体情况来设置)

    JDBC Driver class:连接mysql 驱动, com.mysql.jdbc.Driver 即可。

    username:数据库用户名

    password:数据库密码

     

    ③添加jdbc请求 Add--sample--JDBC Request 



    Variable name: 变量别名,与JDBC Connection Configuration  中的variable name 保持一至

    sql query:sql语句   在query项中输入sql语句。


    ④添加查看结果树  add -- Listener-- view results tree  点击运行。即可看到结果。




    展开全文
  • JDBC测试代码

    千次阅读 2018-06-25 10:54:17
    You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. at ...

    需要建立一个java project,并且需要导入这个mysql驱动包,注意的就是这个jar的版本不要太高,如果选择8.*.*那种高版本的,下面的代码编译的时候会出现很多问题,因为高版本的URL、驱动名称那些都会有改动。

    jar下载可以提供一个方法(通过maven下载):点击打开链接

    代码:

    package com.luozuo.chap02;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class jdbcTest {
    
    	public static void main(String[] args) throws ClassNotFoundException,SQLException{
    		//jdbc:mysql://主机名或IP抵制:端口号/数据库名?useUnicode=true&characterEncoding=UTF-8&useSSL=true
    		String URL="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT&useUnicode=true&characerEncoding=utf-8&useSSL=true";
    		String USER="root";
    		String PASSWORD="123456";
    		//1.加载驱动
    		Class.forName("com.mysql.jdbc.Driver");
    		//2.获得数据库链接
    		Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
    		//3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
    		Statement st=conn.createStatement();
    		ResultSet rs=st.executeQuery("select * from user");
    		//4.处理数据库的返回结果(使用ResultSet类)
    		while(rs.next()) {
    			System.out.println(rs.getString("userName")+" "+rs.getString("password"));
    		}
    		//关闭资源
    		rs.close();
    		st.close();
    		conn.close();
    	}
    }
    

    这里需要注意的就是在连接mysql数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8,它的作用如下:

    指定字符的编码、解码格式。例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:

    1. 存数据时:数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。

    2.取数据时:在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。

     

    再就是后面的&useSSL=true,这个是因为数据库版本过高连接时会出现如下警告:

    Establishing SSL connection without server's identity verification is not recommended

    加上了&useSSL=true就可以消除这种警告了。

     

    还需要加上一个serverTimezone=GMT(注意字母大小写),不然会报如下错误出现这个的原因是因为 mysql返回的时间总是有问题,比实际时间要早8小时。

    Exception in thread "main" java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:87)
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:61)
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:71)
    	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
    	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862)
    	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444)
    	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230)
    	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226)
    	at java.sql.DriverManager.getConnection(DriverManager.java:664)
    	at java.sql.DriverManager.getConnection(DriverManager.java:247)
    	at com.living.jdbc.jdbcTest.main(jdbcTest.java:19)
    Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:59)
    	at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:83)
    	at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:128)
    	at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2201)
    	at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2225)
    	at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1391)
    	at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:993)
    	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:852)
    	... 6 more
    

     

    展开全文
  • jdbc测试mysql数据库sql预解析(绑定变量) 用习惯了oracle,学习mysql,想测试一下mysql绑定变量的效果。以前看网上介绍大部份都说mysql没有sql共享池的概念,所以也不存在sql预解析或绑定变量的说法。 今天测试了...
    jdbc测试mysql数据库sql预解析(绑定变量)


            用习惯了oracle,学习mysql,想测试一下mysql绑定变量的效果。以前看网上介绍大部份都说mysql没有sql共享池的概念,所以也不存在sql预解析或绑定变量的说法。
            今天测试了一下(通过网络抓包、查看服务器端sql日志及分析源码等方法),发现mysql还是有sql预解析的实现。
            服务器端是mysql 5.1.58(win32),用jdbc(5.1.18)做客户端,默认的连接方式是不会有sql预解析效果,即使我们用PreparedStatement对象也差不多,它只是把SQL和变量拼接成一个完整的SQL发送给服务器,如下代码:
    PreparedStatement pstmt = conn.prepareStatement("select * from t1 where c1=?");
    pstmt.setString(1, "abc");
    pstmt.execute();
    

    实际上不会有预解析的过程,而是经过简单的拼接,把如下SQL发送给服务器

    select * from t1 where c1='abc'
               要实现预解析的效果,我们必须设置jdbc Connection的参数useServerPrepStmts=true,再使用PreparedStatement后就OK了,创建PreparedStatement时客户端先把"select * from t1 where c1=?"发送到服务器端预解析,execute时只是把变量传送到服务器执行。

    mysql服务器的sql语句缓存可以通过状态变量Prepared_stmt_count查看
    mysql> show status  like 'Prepared_stmt_count';
    +---------------------+-------+
    | Variable_name       | Value |
    +---------------------+-------+
    | Prepared_stmt_count | 1     |
    +---------------------+-------+
    1 row in set
    

            不过mysql的sql语句缓存与oracle有很大不同,它是会话语句级的,不是全局共享,当会话断开或PreparedStatement.close后这个缓存就没有了。我们需要设置Connection的参数cachePrepStmts=true把PreparedStatement缓存起来,prepStmtCacheSize=xxx来设置每个会话缓存语句的最大数量(很多连接池也有类似的功能)。

            OK,已经知道如何启用预解析了,想看看启用与不启用预解析性能有多少差别,会不会也像oracle那么明显呢?经过简单的测试,发现当没有PreparedStatement缓存(cachePrepStmts=false)时,打开预解析性能下降很多, 当有PreparedStatement缓存(cachePrepStmts=true)时,两者性能基本一样。这个结果让人很失望,个人分析有几个原因:
            启用预解析但没有PreparedStatement缓存时,每次创建PreparedStatement都需要解析一次,execute时又需要交互一次,而预解析的SQL在PreparedStatement.close又不能重用,所以性能反而更差。

            当有PreparedStatement缓存时,预解析的SQL文本缓存在服务器端,但是并不会像oracle一样缓存执行计划,所以每次execute时都需要解析SQL和生成执行计划,因此只是减少了每次execute传输SQL的文本大小,性能差别不大。

    注:如果SQL语法错误,那么服务器端预解析会出错,但jdbc收到预解析出错的信息后并不提示出错,而是将取消本条语句预解析的状态,execute时直接把SQL接装发送给服务器,mysql jdbc在PreparedStatement构造函数中代码如下,其中返回ServerPreparedStatement类表示使用了绑定变量,返回PreparedStatement表示未使用绑定变量:

    try {
    	pStmt = ServerPreparedStatement.getInstance(getLoadBalanceSafeProxy(), nativeSql,
    			this.database, resultSetType, resultSetConcurrency);
    	
    	pStmt.setResultSetType(resultSetType);
    	pStmt.setResultSetConcurrency(resultSetConcurrency);
    } catch (SQLException sqlEx) {
    	// Punt, if necessary
    	if (getEmulateUnsupportedPstmts()) {
    		pStmt = (PreparedStatement) clientPrepareStatement(nativeSql, resultSetType, resultSetConcurrency, false);
    	} else {
    		throw sqlEx;
    	}
    }
    
            经过上面分析,个人认为不需要打开SQL预解析的效果,PreparedStatement对象还是尽量使用,因为虽然不能提升性能,但可以避免SQL注入安全问题 。


    2012-02-17

    展开全文
  • centos7安装mysql并jdbc测试

    千次阅读 2016-12-23 02:22:05
    接着来开放我们的jdbc测试用例。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; ...
  • python代码中使用jdbc测试连接mysql

    千次阅读 2020-06-09 16:59:16
    jdbc_url = "jdbc:mysql://localhost:3306/xxx" user = "root" pwd = "xxxx" driver = "com.mysql.jdbc.Driver" jar_file = './mysql-connector-java-5.1.34.jar' sql = "select count(1) from table_name;" conn =
  • JDBC测试工具CTS的使用方法

    千次阅读 2015-07-23 12:43:25
    JDBC(CTS)测试工具的使用方法 在linux32和linux64两个平台验证,可以使用此工具。 测试部署 无论32位系统还是64位系统,都需要J2EE1.3.1,JDK,JTS1.3.1,apache-ant-1.7.0。 除了JDK要根据系统,选择32位或64位之外...
  • jmeter jdbc测试(mysql)

    千次阅读 2017-08-09 09:57:36
    3.测试计划中加入jar包 或者直接将 mysql-connector-java-bin.jar 放到apache-jmeter-3.2\lib下( 二者都是可以的,选一个即可,建议直接放到lib下 ) 4.jdbc配置 线程组-》添加-》配置元件-》 JDBC ...
  • JMeter学习JDBC测试计划——连接Oracle

    千次阅读 2014-12-26 09:51:08
    一、测试环境准备: 数据库:Oracle10g,库名:myorcl; JMeter:jmeter-2.6安装在win2003系统下 JDBC驱动:ojdbc14.jar,oracle安装目录下(oracle\product\10.2.0\db_1\jdbc\lib\ojdbc...1、打开测试计划,添加JDBC驱动:
  • JMeter使用记录1 -- JDBC测试

    千次阅读 2014-06-29 17:23:44
    使用jmeter对数据库进行简单测试
  • MySql与oracle的JDBC测试程序

    千次阅读 2010-09-23 18:24:00
    测试数据库是否正确连接时j2ee开发首先要做的事情,因为如果数据库连接不正确,后期的错误就无法正确判定。所有得先排除数据库连接错误。 一.连接MySql数据库实例 import java.sql.Connection; import java.sql....
  • Kafka 0.9 Connect JDBC测试(Mysql)

    千次阅读 2016-04-20 17:32:48
    作者最近研究kafka 0.9的connect功能,测试过程如下: 1.创建容器(本次采用docker容器构建kafka环境) docker run -p 10924:9092 -p 21814:2181 --name confluent -i -t -d java /bin/bash 2.将confluent...
  • 介绍JMeter中JDBC连接Oracle
  • jdbc:oracle:thin:@[:]: server:数据库安装的服务器的IP地址,本地用127.0.0.1 或者 localhost database_name:数据库实例名字,不是服务名字。   如何查询数据库实例名? 用sysdba用户以sysdba身份登录,执行...
  • jdbc连接测试

    2020-07-21 14:50:20
    在配置好数据库之后,需要测试一下能否使其与程序顺利连接 一、下载并添加数据库驱动: 下载之后,在工程中新建一个lib文件夹用于存放添加的依赖包。将jar文件放入,右键添加到项目库: 二、准备数据库连接 启动...
  • JDBC连接测试

    2016-04-28 14:22:52
    JDBC连接测试“package MyJDBC;import java.sql.*; import java.sql.SQLException; import java.sql.DriverManager; import java.sql.Connection ;public class TestJDBC { private static final String url="jdbc:...
  • jmeter JDBC性能测试

    2018-07-23 16:37:57
    1、添加JDBC的jar 2、添加–配置元件–JDBC Connection Configuration 3、新建一个线程组(略) 4、右击线程组–添加-sampler-JDBC request 5、添加监听器查看统计结果(略) 右击–添加-监听器-xxx ...
  • JDBC配置、测试

    千次阅读 2018-10-11 20:35:50
    JDBC配置、测试
  • JDBC连接MySQL测试

    千次阅读 2017-05-06 14:25:37
    JDBC连接MySQL测试1、下载MySQL驱动jar文件:https://dev.mysql.com/downloads/connector/j/2、在工程里新建一个文件夹lib,将下载后的jar文件拷贝到lib里面,并配置路径。3、加载驱动类:Class.forName(...
  • es通过JDBC导数测试

    千次阅读 2017-05-10 09:19:47
    3、2.4GHz I5测试数据 50G CSV格式 每行6个字段测试一:使用es默认配置 es版本2.3.4 es-jdbc版本2.3.4.0 通过es-jdbc方式耗时40小时+ 索引建立完成12亿+ 索引所占空间为52G左右测试二:使用es默认配置 es...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 289,057
精华内容 115,622
关键字:

jdbc测试