JDBC 基础

Posted kakaisgood

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

以上是关于JDBC 基础的主要内容,如果未能解决你的问题,请参考以下文章

面试常用的代码片段

mysql jdbc源码分析片段 和 Tomcat's JDBC Pool

[vscode]--HTML代码片段(基础版,reactvuejquery)

JAVA基础:JDBC的使用 附详细代码

JDBC操作数据库之查询数据

如何在片段中填充列表视图?