使用工具:
jdk1.8,idea,mysql8.0.19
1.需要的jar包
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
2.连接数据库需要的参数
- 驱动:driver
- 数据库url地址:dburl(包含数据库ip和库名)
- 用户:username
- 密码:password
3.下面附上实例
package com.course;
import java.sql.*;
public class sqlKey {
//定义mysql加载驱动,老版本的mysqljar包用的驱动参数时“com.mysql.jdbc.Driver”,新版的如下所示
private static final String driver="com.mysql.cj.jdbc.Driver";
//数据库的ip地址、端口号、库名
private static final String urlPort="jdbc:mysql://192.168.1.7:3306/course";
//数据库的用户名
private static final String user="username";
//数据库的密码
private static final String pass="password";
//定义连接
private Connection conn;
//定义sql执行状态
private PreparedStatement prepare;
//定义结果字段
private ResultSet result;
//获取预约单号方法
public String getAppointNO(String no) throws SQLException, ClassNotFoundException, IllegalAccessException, InstantiationException {
//加载驱动
Class.forName(driver).newInstance();
System.out.println("驱动加载成功");
//连接数据库
conn=DriverManager.getConnection(urlPort,user,pass);
System.out.println("数据库连接成功");
String sql="SELECT * FROM `mem_appoint_order` WHERE C_ORDER_NO = '"+no+"'";
//执行sql
prepare =conn.prepareStatement(sql);
//难到返回值
result=prepare.executeQuery();
try{
if( result.next() ){
//取出返回值,需要通过index单一取出value
System.out.println(result.getString(2));
return result.getString(2);
}else {
return "无结果";
}
}finally {
close();
}
public void close(){
try{
if( result!=null ) result.close();
if( prepare!=null ) prepare.close();
if( conn!=null ) conn.close();
} catch(Exception e){ e.printStackTrace();}
}
}
4.try finally 使用的重要性
如果是获取到结果集,直接关闭连接conn.close()
,那么值钱获取到的结果集也就不能使用了,所以需要使用try finally 。
执行try里面的逻辑后,在进行关闭连接。
- 使用的spring boot跑这个方法时,为了使用查询到的结果集,发现到的错误,直接关闭会出现这个错误
java.sql.SQLException: Operation not allowed after ResultSet closed
5.使用jdbc去连接数据库,取值不方便
后面做接口自动化测试,还是需要使用框架进行数据库查询,获取结果会比上面的方式更方便。