zoukankan      html  css  js  c++  java
  • 性能测试之七--jdbc

    jdbs用任意协议打开都行,具体脚本见下

    在vuser_init里面

    #include "Ptt_Mysql.h"
    vuser_init()
    {
    lr_load_dll ("libmysql.dll");
    #define MYSQLSERVER "192.168.1.104"
    #define MYSQLUSERNAME "root"
    #define MYSQLPASSWORD "123456"
    #define MYSQLDB "ultrax"
    #define MYSQLPORT "3306"
    
    
    
    	return 0;
    }
    

     action

    Action()
    {
    char sqQuery[512]; //定义一个字符数组存储查询的sql语句
    int i;
    MYSQL *Mconn; //mysql连接字符串
    Mconn = lr_mysql_connect(MYSQLSERVER, MYSQLUSERNAME, MYSQLPASSWORD, MYSQLDB, atoi(MYSQLPORT));//创建连接
     
    sprintf(sqQuery, "select username,email from pre_ucenter_members ");//查询论坛用户
    lr_mysql_query(Mconn, sqQuery);//执行sql语句
     
    sprintf(sqQuery,"insert into pre_ucenter_members(username,password,email) values('qq','123456','qq@qq.com')");//插入数据
    lr_mysql_query(Mconn, sqQuery);
     
    sprintf(sqQuery,"update pre_ucenter_members set username='dd' where username='qq' ");//更改用户名qq为dd
    lr_mysql_query(Mconn, sqQuery);
     
    sprintf(sqQuery,"delete from pre_ucenter_members ORDER BY uid desc LIMIT 1");//删除最后添加的一条数据
    lr_mysql_query(Mconn, sqQuery);
     
    //断开数据库连接
    lr_mysql_disconnect(Mconn);
    
    
    return  0;
    
    
    
    }  

    另一种方式:

    Action()  
    {  
      int rc;   
      int db_connection; // 数据库连接  
      int query_result; // 查询结果集 MYSQL_RES  
      char** result_row; // 查询的数据
       
      char *server = "localhost";  
      char *user = "root";  
      char *password = "123456";  
      char *database = "test";  
      int port = 3306;  
      int unix_socket = NULL;   
      int flags = 0;   
       
      // 找到libmysql.dll的所在位置.  
      rc = lr_load_dll("C://Program Files//MySQL//MySQL Server 5.1//bin//libmysql.dll");  
      if (rc != 0) {  
        lr_error_message("Could not load libmysql.dll");  
        lr_abort();  
      }  
       
      // 创建MySQL对象  
      db_connection = mysql_init(NULL);  
      if (db_connection == NULL) {  
        lr_error_message("Insufficient memory");  
        lr_abort();  
      }  
       
      // 连接到MySQL数据库  
      rc = mysql_real_connect(db_connection, server, user, password, database, port, unix_socket, flags);  
      if (rc == NULL) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_close(db_connection);  
        lr_abort();  
      }  
       
      // 向数据库插入数据  
      // 此处的 {ORDER_ID} 是一个参数,简单测试时可以用一个常数代替  
      lr_save_string (lr_eval_string("INSERT INTO test_data (order_id) VALUES ({ORDER_ID})"),"paramInsertQuery");   
      rc = mysql_query(db_connection, lr_eval_string("{paramInsertQuery}"));  
      if (rc != 0) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_close(db_connection);  
        lr_abort();  
      }  
       
      // 从数据库读取一个数据并显示  
      rc = mysql_query(db_connection, "SELECT order_id FROM test_data WHERE status IS FALSE LIMIT 1");  
      if (rc != 0) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_close(db_connection);  
        lr_abort();  
      }  
      query_result = mysql_use_result(db_connection);  
      if (query_result == NULL) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_free_result(query_result);  
        mysql_close(db_connection);  
        lr_abort();  
      }  
      // 如果结果集包含多行数据,需要多次调用 mysql_fetch_row 直到返回NULL  
      result_row = (char **)mysql_fetch_row(query_result);   
      if (result_row == NULL) {  
        lr_error_message("Did not expect the result set to be empty");  
        mysql_free_result(query_result);  
        mysql_close(db_connection);  
        lr_abort();  
      }  
      // 保存参数,用于删除这行数据  
      lr_save_string(result_row[0], "paramOrderID");  
      lr_output_message("Order ID is: %s", lr_eval_string("{paramOrderID}"));  
      mysql_free_result(query_result);  
       
      // 在事务里更新一行数据,需要用InnoDB引擎  
      rc = mysql_query(db_connection, "BEGIN"); //启动事务  
      if (rc != 0) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_close(db_connection);  
        lr_abort();  
      }  
      // 使用 "FOR UPDATE" 锁住要更新的数据行  
      rc = mysql_query(db_connection, "SELECT order_id FROM test_data WHERE status IS FALSE LIMIT 1 FOR UPDATE");   
      if (rc != 0) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_close(db_connection);  
        lr_abort();  
      }  
      query_result = mysql_use_result(db_connection);  
      if (query_result == NULL) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_free_result(query_result);  
        mysql_close(db_connection);  
        lr_abort();  
      }  
      result_row = (char **)mysql_fetch_row(query_result);   
      if (result_row == NULL) {  
        lr_error_message("没有查询到结果");  
        mysql_free_result(query_result);  
        mysql_close(db_connection);  
        lr_abort();  
      }  
      lr_save_string(result_row[0], "paramOrderID");  
      lr_output_message("Order ID is: %s", lr_eval_string("{paramOrderID}"));  
      mysql_free_result(query_result);  
      lr_save_string(lr_eval_string("UPDATE test_data SET status=TRUE, date_used=NOW() WHERE order_id='{paramOrderID}'"),"paramUpdateQuery");  
      rc = mysql_query(db_connection, lr_eval_string("{paramUpdateQuery}"));  
      if (rc != 0) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_close(db_connection);  
        lr_abort();  
      }  
      rc = mysql_query(db_connection, "COMMIT"); // 提交事务  
      if (rc != 0) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_close(db_connection);  
        lr_abort();  
      }  
       
      // 再次查找数据,应该为空了,因为前面的事务更新了标志  
      rc = mysql_query(db_connection, "SELECT order_id FROM test_data WHERE status IS FALSE LIMIT 1");  
      if (rc != 0) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_close(db_connection);  
        lr_abort();  
      }  
      query_result = mysql_use_result(db_connection);  
      if (query_result == NULL) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_free_result(query_result);  
        mysql_close(db_connection);  
        lr_abort();  
      }  
      result_row = (char **)mysql_fetch_row(query_result);  
      if (result_row == NULL) {  
        lr_output_message("Result set is empty as expected");  
        mysql_free_result(query_result);  
      } else {  
        lr_error_message("Did not expect the result set to contain any rows");  
        mysql_free_result(query_result);  
        mysql_close(db_connection);  
        lr_abort();  
      }  
       
      // 删除数据  
      lr_save_string(lr_eval_string("DELETE FROM test_data WHERE order_id = '{paramOrderID}'"),"paramDeleteQuery");  
      rc = mysql_query(db_connection, lr_eval_string("{paramDeleteQuery}"));  
      if (rc != 0) {  
        lr_error_message("%s", mysql_error(db_connection));  
        mysql_close(db_connection);  
        lr_abort();  
      }  
       
      // 释放MySQL资源  
      mysql_close(db_connection);  
        return 0;  
    }  
    

      

  • 相关阅读:
    Python函数篇(2)-递归函数、匿名函数及高阶函数(已更新)
    Python函数篇(1)-函数中的形参与实参(已更新)
    Pyhton基础篇(6)-非基本数据类型 --集合(已更新)
    Pyhton基础篇(5)-基本数据类型-列表、元组、字典(已更新)
    Pyhton基础篇(4)-基本数据类型-字符串详解(已更新)
    Pyhton基础篇(3)-Pycharm安装及运算符(已更新)
    Pyhton基础篇(2)-变量、用户输入及条件语句(已更新)
    Pyhton基础篇(1)-第一个Pyhton程序(已更新)
    gallery的3D效果的实现
    android 图片二维码识别和保存(一)
  • 原文地址:https://www.cnblogs.com/panpan0301/p/9351731.html
Copyright © 2011-2022 走看看