Java Vuser协议JDBC脚本编写(MySQL)

  • 注册驱动:告诉程序连接哪个数据库,通过驱动jar包连接
    • 添加驱动jar包
    • 添加到工程环境变量:右键→Build Path→Add to Build Path
    • 注册驱动的代码放在init()里实现:Class.forName("com.mysql.jdbc.Driver") ;
    • 驱动包要放到LR脚本目录
  • 连接数据库:IP、端口号、用户名、密码、数据库名称
    • 要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象
    • 使用DriverManager的getConnectin(String url , String username ,String password )获取连接
    • 返回Connection对象:Connection conn = DriverManager.getConnection(url, username, password)
  • 对sql进行预编译,提升性能,返回已编译过的sql对象PreparedStatement
    • PreparedStatement ps= conn.PrepareStatement(sql);
  • 执行sql语句之前,先对不确定的数据进行赋值
    • 声明时,用?代替具体的String sql = "insert into tablename (line1, line2) values (?,?)" ;
    • 执行SQL时,使用ps.setstring方法为不确定的数据赋值
  • LR中参数化:
    • String类型可以直接参数化,如:ps.setString(1,"<name>");
    • int类型参数需要转换,使用Integer.panseInt('string')方法,如:ps.setInt(1, Integer.parseInt("<num>"));
  • 处理结果:
    • 针对update相关操作,返回受影响的行数:int rows = ps.executeUpdate()
    • 针对Query相关操作,返回结果集:while循环先判断结果集是否有数据set.next();
  • 关闭连接:conn.close();
  • 其他注意事项
    • 中文乱码问题,提前修改编码格式,工程右键→属性
    • 数据库URL增加编码格式,具体参考项目数据库配置文件

源码如下:

package cn.lnsoft.ptest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class JdbcTest {

    /**
     * @param args
     */
    //定义全局变量
    String username = "root";
    String password = "123456";
    String url="jdbc:mysql://localhost:3306/oa?useUnicode=true&characterEncoding=utf8";
    String sql = "insert into itcast_role(name, description) values ('需求','需求设计')";
    Connection conn;
    PreparedStatement ps;
    
    public int init() throws Throwable {
        //注册JDBC mysql驱动
        Class.forName("com.mysql.jdbc.Driver");
        //通过url、用户名、密码,创建数据库连接,返回connection对象
        conn = DriverManager.getConnection(url, username, password);
        //对sql进行预编译,提升性能,返回已编译过的sql对象PreparedStatement
        ps = conn.prepareStatement(sql);
        return 0;
    }//end of init


    public int action() throws Throwable {
        //执行sql语句,返回受影响的行数
        int rows = ps.executeUpdate();
        System.out.println("受影响的行数1:"+rows);
        return 0;
    }//end of action


    public int end() throws Throwable {
        //关闭mysql连接
        conn.close();
        return 0;
    }//end of end
    
    public static void main(String[] args) throws Throwable {
        // TODO Auto-generated method stub
        //模拟LR执行脚本
        JdbcTest test = new JdbcTest();
        test.init();
        test.action();
        test.end();

    }

}
View Code
原文地址:https://www.cnblogs.com/lxyykl001/p/11057564.html