Java的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. 释放资源
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值