zoukankan      html  css  js  c++  java
  • JDBC 基础

    掌握数据库开发是java工程师的基本要求,而JDBC是数据库开发的基础,通过JDBC可以实现Java程序对后端数据库的访问。

    虽然现在大多使用MyBatis,但明白JDBC的工作流程,对初学者来说还是非常必要的,学会之后能够更快速的上手MyBatis。下面我就介绍一下JDBC的基础知识。注意:学习JDBC需要有Java基础以及数据库基础。

    总的来说,使用JDBC的流程大概分为:

    1. 装载驱动程序
    2. 建立与数据库的连接
    3. 执行SQL语句
    4. 获取执行结果
    5. 清理资源
    

    接下来逐步详细说明:

    1.装载驱动程序

    说到装载驱动程序,就不得不说JDBC中的Driver类、DriverManager类。Driver类是一个接口,定义了各个驱动程序都必须实现的功能,是驱动程序的抽象。而DriverManager类是Driver类的管理类。

    想要装载驱动程序,我们就要用Class.forName(DriverName)向DriverManager注册驱动程序。DriverName就是响应数据库驱动的名称。推荐用maven管理驱动程序,免去到官网下载的麻烦。例如加载mysql驱动:

    Class.forName(“com.mysql.jdbc.Driver");
    

    2.建立与数据库的连接

    想要建立与数据库的连接,就要通过DriverManager类中的getConnection()方法调用驱动程序。

    getConnection()方法返回的是一个JDBC Connection对象。Connection对象其实代表的是Java应用程序对后端数据库的一条物理链接。基于这条链接,我们可以执行SQL语句。Connection对象常用的方法就是createStatement()方法,这个方法用来创建Statement对象。

    调用getConnection()方法需要传入三个参数,分别是URL、UserName、PassWord。注意:使用getConnection()可能会抛出异常,所以这里要捕获异常。

    例如:

    Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/数据库名","root","root");
    

    URL为相应数据库的地址,包含协议、子协议、子名称三部分,其中自名称又包括主机、端口、数据库名等。例如:“jdbc:mysql://127.0.0.1:3306/数据库名”。
    UserName则是你部署相应数据库时设置的用户名,一般都是“root”。
    PassWord就是你部署相应数据库时设置的密码。

    3.执行SQL语句

    要执行SQL语句,首先要用Connection连接创建Statement对象。Statement对象,说到底就是一个SQL容器,这个容器可以承载一些SQL语句。

    然后调用executeQuery()方法或execute()方法执行SQL语句。其中,executeQuery()方法可执行查询操作,execute()方法更新、添加、删除等操作。执行后返回int值或ResultSet对象。ResultSet是数据库结果集的数据表。

    例如:

    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select name from user");
    

    4.获取执行结果

    若返回的是ResultSet对象,则要用循环取出ResultSet对象中的数据。因为ResultSet对象具有指向其当前数据行的指针。最初,指针被置于第一行之前。next方法可以将指针移动到下一行;使用该方法是会true或false(若没有下一行则返回false),所以可以在while循环中使用它迭代结果集。(ResultSet对象的其他常用方法自行搜索其他资料,这里就不赘述了。)

    例如:

    while(rs.next()){
        System.out.println(rs.getString("name"));
    }
    

    5.清理资源

    在finally{ }方法中清理资源。
    例如:

    finally{
        try{
            if(rs != null)
                rs.close();
    
            if(stmt != null)
                stmt.close();
    
            if(conn != null)
                conn.close();
        }
       catch(SQLException){
          //ignore
       }
    }
    
     


    作者:lingyv
    链接:https://www.jianshu.com/p/ffb81620a7b4
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    2020.04.11补提
    UCF Local Programming Contest 2017(2020-04-06)
    AtCoder Beginner Contest 161
    UCF Local Programming Contest 2016(2020-03-28)
    Benelux Algorithm Programming Contest 2019(2020.03.21)
    Preliminaries for Benelux Algorithm Programming Contest 2019(2020.03.14)
    AtCoder Beginner Contest 158
    A-Leftbest
    强迫症
    不大想更了……
  • 原文地址:https://www.cnblogs.com/kakaisgood/p/10536632.html
Copyright © 2011-2022 走看看