Java的JDBC编程

Posted 张同学吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的JDBC编程相关的知识,希望对你有一定的参考价值。

JDBC编程


jdbc下载地址:https://mvnrepository.com/

一、java的数据库编程:

1. 什么是jdbc

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发者能够编写数据库的程序。简单地说,JDBC 可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。

2.JDBC有什么用呢?

我们用JAVA就能连接到数据库;创建SQL或者mysql语句;执行SQL或MYSQL的查询数据库;查看和修改结果记录。

二、JDBC工作原理

JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包含一些通用的接口类:

1.连接常用的接口

提供的接口包括:JAVA API:提供对JDBC的管理链接;JAVA Driver API:支持JDBC管理到驱动器连接。

1、DriverManager :

这个类管理数据库驱动程序的列表。内容是否符合从Java应用程序使用的通信子协议正确的数据库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器被用来建立数据库连接。

2、Driver :

此接口处理与数据库服务器通信。很少直接与驱动程序对象。相反,使用DriverManager中的对象,它管理此类型的对象。它也抽象的与驱动程序对象工作相关的详细信息。

3、Connection :

此接口与接触数据库的所有方法。连接对象表示通信上下文,即,与数据库中的所有的通信是通过唯一的连接对象。

4、Statement :

可以使用这个接口创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。

5、ResultSet :

这些对象保存从数据库后,执行使用Statement对象的SQL查询中检索数据。它作为一个迭代器,让你可以通过移动它的数据。

2.JDBC优势:

  1. Java语言访问数据库操作完全面向抽象接口编程
  2. 开发数据库应用不用限定在特定数据库厂商的API
  3. 程序的可移植性大大增强

三、JDBC使用

1.JDBC使用步骤

  • 准备数据库驱动包,并添加到项目的依赖中:

在项目中创建文件夹lib,并将依赖包mysql-connector-java-5.1.47.jar复制到lib中。再配置该jar包到本项目的依赖中:右键点击项目Open
Module Settings,在Modules中,点击项目,配置Dependencies,点击+,JARS or
Directories,将该lib文件夹配置进依赖中,表示该文件夹下的jar包都引入作为依赖。

  • 建立数据库连接

加载JDBC驱动程序:

			Connection conn = null;
	        Statement s = null;
	        ResultSet r = null;
        	try 
				//反射的方式,加载一个类(类加载:执行静态变量,静态代码块)
	            //数据库驱动包就可以在这种操作下,执行对应的初始化工作(驱动)
	            Class.forName("com.mysql.jdbc.Driver");
	            //获取数据库连接:Connection接口,需要使用jdbc中的,不要使用mysql中的
	            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java43?user=root&password=123456&useUnicode=true&characterEncoding=UTF-8&useSSL=false");
	            //MySQL数据连接的URL参数格式如下:jdbc:mysql://服务器地址:端口/数据库名?参数名=参数值
	            System.out.println(conn);
	            //通过连接对象创建操作命令对象Statement(使用jdbc中的),该对象是用于操作sql的一个抽象的对象
	            s = conn.createStatement();
	            //查询:
	            // (1)调用Statement操作命令对象的executeQuery(sql)
	            // (2)返回一个ResultSet结果集对象(查询sql执行的结果集)
	            r = s.executeQuery("select id,sn,name,qq_mail,classes_id from student where id>3");
	            //处理结果集:结果集可能是多行数据,需要遍历来获取
	            // 调用next就移动到下一行,返回true代表该行有数据,返回false代表该行没有数据
	            while (r.next()) //一直遍历到最后
	                //进入循环,代表操作遍历的一行数据
	                int id = r.getInt("id");
	                String sn = r.getString("name");
	                System.out.printf("id=%s, name=%s",id,  name);
	            
	        finally //无论如何,都要释放资源
            //释放资源:
            //(1)无论什么情况(异常)
            //(2)释放的顺序,和创建的顺序要相反(结果集对象,操作命令对象,数据库连接对象)
	            if (r != null) //出现异常的时候,对象可能还没有赋值(初始化),调用close就会出现空指针异常
	                r.close();
	            
	            if (s != null) 
	                s.close();
	            
	            if (conn != null) 
	                conn.close();
	            
	         

2.JDBC使用步骤总结

  1. 创建数据库连接Connection
  2. 创建操作命令Statement
  3. 使用操作命令来执行SQL
  4. 处理结果集ResultSet
  5. 释放资源

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

从Greenplum上的表中读取数据时,如何在Spark-jdbc应用程序的选项“dbtable”中指定子查询? [复制]

mybais学习————纯jdbc编程

Java学习路线

《Java核心技术 卷2 高级特性》五

jdbc操作数据库(详细)

JDBC