一,什么是JDBCJDBC(Java DataBase Connectivity)
    JAVA提供了专门用于操作数据库的API,即JDBC。JDBC操作不同的数据库仅仅是连接方式上的差异而已,使用JDBC的应用的程序一但和数据库建立连接,就可以使用JDBC提供的API操作数据库。或者可以简单的理解为:JDBC是用Java语言向数据库发送SQL语句。
    二、Java连接数据库的maven依赖(以MySQL为例)

    mysql
    mysql-connector-java
    5.1.14

    三、Java连接数据库的步骤
    image.png
    1、加载驱动
    Class.forName(“com.mysql.jdbc.Driver”);
    2、建立连接
    通过Connection建立连接,Connection是一个接口类,其功能是与数据库进行连接
    conn=DriverManager.getConnection(url, user, password);
    url:JDBC:子协议:子名称//主机名:端口/数据库名?属性名=属性值&…
    例如:jdbc:mysql://127.0.0.1:3306/数据库名”,”用户名”,”密码”
    3、创建执行对象并发送SQL指令
    Statement对象用于将 SQL 语句发送到数据库中,或者理解为执行sql语句
    PreparedStatement pstmt=conn.prepareStatement(sql);

    Statement:用于执行不带参数的简单SQL语句;
    PreparedStatement(从 Statement 继承):用于执行带或不带参数的预编译SQL语句;
    CallableStatement(从PreparedStatement 继承):用于执行数据库存储过程的调用
    联系与区别:
    虽然PreparedStatement继承自Statement,都是接口,但是 PreparedStatement可以使用占位符,是预编译的,批处理比Statement效率高

    4、处理ResultSet结果
    ResultSet对象是executeQuery()方法的返回值,它被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。
    ResultSet里的数据一行一行排列,每行有多个字段,且有一个记录指针,指针所指的数据行叫做当前数据行,我们只能来操作当前的数据行。我们如果想要取得某一条记录,就要使用ResultSet的next()方法 ,如果我们想要得到ResultSet里的所有记录,就应该使用while循环。
    ResultSet对象自动维护指向当前数据行的游标。每调用一次next()方法,游标向下移动一行。
    初始状态下记录指针指向第一条记录的前面,通过next()方法指向第一条记录。循环完毕后指向最后一条记录的后面。
    image.png
    image.png
    五、释放连接
    在jdbc中Connection是非常稀有的资源,使用完之后应当马上释放,甚至还要以”迟占用,早释放“的原则使用,也就是说在使用的过程中尽可能地要用的时候才创建Connection一用完应当立刻关闭释放。
    finally { //conn对象是
    if(null!=conn)//可以避免空指针异常
    try
    {//耗费资源,占有内存较大的对象,避免内存泄露,操作完成后保证关闭
    conn.close();
    } catch (SQLException e)
    {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    [

    ](https://blog.csdn.net/qq_43623447/article/details/106494077)