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优势:
- Java语言访问数据库操作完全面向抽象接口编程
- 开发数据库应用不用限定在特定数据库厂商的API
- 程序的可移植性大大增强
三、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使用步骤总结
- 创建数据库连接Connection
- 创建操作命令Statement
- 使用操作命令来执行SQL
- 处理结果集ResultSet
- 释放资源
以上是关于Java的JDBC编程的主要内容,如果未能解决你的问题,请参考以下文章