JDBC连接数据库参考:https://www.cnblogs.com/ysgcs/p/7283701.html
- 注册驱动:告诉程序连接哪个数据库,通过驱动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(); } }