java连接数据库执行sql语句(JDBC)


使用工具:
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去连接数据库,取值不方便

后面做接口自动化测试,还是需要使用框架进行数据库查询,获取结果会比上面的方式更方便。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值