• 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
  • 相关阅读:
    Django之使用内置函数和celery发邮件
    Django之FBV和CBV的用法
    使用xampp将angular项目运行在web服务器
    Django之使用中间件解决前后端同源策略问题
    Spring cloud Feign 调用端不生效
    进程同步——哲学家进餐问题Java实现
    数据库事务四大特性、隔离级别
    B树 B+树 红黑树
    SpringCloud Config Bus webhook 只能刷新config server 不能刷新config client
    Java8 容器类详解
  • 原文地址:https://www.cnblogs.com/lxyykl001/p/11057564.html
Copyright © 2020-2023  润新知