java 连接mysql

目前还沉浸在java自动化测试中不能自拔!

自动化过程中免不了要从数据库取值与期望值比较,目前我项目刚开始就需要用到了。

下面我把操作过程写下来:

我的项目框架是java+maven+testNG,所以首先要在pom.xml中添加mysql-connector-java的依赖,如下所示:

<!-- 加入mysql支持 -->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.6</version>
        </dependency>

然后写一个链接mysql的类,如下所示

/**
 * @author Helen 
 * @date 2018年4月12日  
 */
package common;

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

/**
 * 描述:mysql数据库链接处理
 */
public class mySQL {
    private static final String url = "jdbc:mysql://*****/**";/*jdbc:mysql://数据库IP/数据库名*/
    private static final String user = "**";//数据库用户名
    private static final String password = "**";//对应的用户密码

    private Connection conn = null;
    private PreparedStatement pst = null;
    private ResultSet resultSet = null;

    public mySQL() {
        try {
            conn = DriverManager.getConnection(url, user, password);
        } catch (Exception e) {
            System.out.println("数据库连接失败!");
            e.printStackTrace();
        }

    }

    /* 执行SQL语句:查询并返回结果, 这是单结果返回,我们测试的时候就是根据条件查询,然后返回一个结果与期望结果比较即可,所以单结果足已*/
    public String getData(String sql, String targetName) {
        String result = null;
        try {

            pst = conn.prepareStatement(sql);
            resultSet = pst.executeQuery();
            while (resultSet.next()) {
                result = resultSet.getString(targetName);
            }
            this.close();
        } catch (Exception e) {
            System.out.println("执行查询语句失败");
            e.printStackTrace();
        }
        return result;
    }

    /* 关闭链接 */
    private void close() {
        try {
            this.conn.close();
            this.pst.close();
        } catch (Exception e) {
            System.out.println("关闭数据库连接失败!");
            e.printStackTrace();
        }
    }

}

下面在test调用mySQL执行查询操作,如下所示:

package myTest.mytest;

import static org.testng.Assert.assertEquals;
import org.testng.annotations.Test;
import common.mySQL;

public class mysqlTest {
  @Test
  public void getDataFromMysql() {
      mySQL mySQL = new mySQL();
      String result = mySQL.getData("SELECT `name` from course where id=1","name");//查询语句
      assertEquals(result, "PS提高班班");
  }
}

……

原文地址:https://www.cnblogs.com/helenMemery/p/8821079.html