【JDBC入门】(一)初识JDBC

12 篇文章 0 订阅

一、什么是JDBC?

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。它由一组用Java语言编写的类和接口组成。有了JDBC,程序猿就可以直接通过java代码来访问数据库。

在这里插入图片描述

二、JDBC API和驱动

JDBC API和驱动

JDBC的API是由Sun公司所提供的,供程序员调用的接口与类,集成在java.sql和javax.sql包中,有DriverManager类、Connection接口、Statement接口、ResultSet接口。

JDBC 驱动是由数据库厂商提供的,负责连接各种不同的数据库。

JDBC主要有以下部分:

  • DriverManager:负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接(Connection)。
  • Driver:驱动程序,会将自身加载到DriverManager中去,并处理相应的请求并返回相应的数据库连接(Connection)。
  • Connection:数据库连接,负责与进行数据库间通讯,SQL执行以及事务处理都是在某个特定Connection环境中进行的。可以产生用以执行SQL的Statement。
  • Statement:用以执行SQL查询和更新(针对静态SQL语句和单次执行)。
  • PreparedStatement:用以执行包含动态参数的SQL查询和更新(在服务器端编译,允许重复执行以提高效率)。
  • ResultSet:是executeQuery()方法的返回值,它被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。

三、JDBC应用程序

构建一个 JDBC 应用程序包括以下六个步骤-

  • 导入数据包:需要你导入含有需要进行数据库编程的 JDBC 类的包。大多数情况下,使用 import java.sql. 就足够了。
  • 注册 JDBC 驱动器:需要你初始化一个驱动器,以便于你打开一个与数据库的通信通道。
  • 打开连接:需要使用 DriverManager.getConnection() 方法创建一个 Connection 对象,它代表与数据库的物理连接。
  • 执行查询:需要使用类型声明的对象建立并提交一个 SQL 语句到数据库。
  • 提取结果数据:要求使用适当的 ResultSet.getXXX() 方法从结果集中检索数据。
  • 清理环境:依靠 JVM 的垃圾收集来关闭所有需要明确关闭的数据库资源。

这里需要用到几个函数

Class.ForName();
DriverManager.getConnection();
connection.createStatement();
statement.executeUpdate()

博主的运行环境IDEA2019.3+JDK1.8+Mysql8.0.18

首先在项目目录下新建一个lib目录,然后把jdbc驱动的jar包放到改目录下,并添加到lib中。

在这里插入图片描述

在这里插入图片描述

所使用的数据库。

create database dbtest;
use dbtest;


create table if not exists`userInfo`(
	`id` int not null auto_increment,
    `name` varchar(20) not null,
    `email` varchar(20) not null,
    primary key(`id`)
);

insert into userInfo(name,email) value('zhangsan','1136667341@qq.com');
insert into userInfo(name,email) value('zhangsan','1136667341@qq.com');
insert into userInfo(name,email) value('zhangsan','meiya@cn-meiya.com');
insert into userInfo(name,email) value('lisi','meiyuan@0757info.com');

insert into userInfo(name,email) value('wangwu','melodylu@buynow.com');

insert into userInfo(name,email) value('xiaoxiao','kevintian126@126.com');
insert into userInfo(name,email) value('xiaohie','wq901200@hotmail.com ');
insert into userInfo(name,email) value('zhouli','tony@erene.com.com');

select * from userInfo;

package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class JdbcDemo1 {
    public static void main(String[] args) throws Exception {
        /*加载驱动*/
        Class.forName("com.mysql.cj.jdbc.Driver");
        /*获得链接对象*/
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbtest?serverTimezone=UTC","root", "root");

        String sql ="select * from userInfo";
        /*创建一个statment对象*/
        Statement statement = connection.createStatement();


        ResultSet resultSet = statement.executeQuery(sql);

        while(resultSet.next()){
            String name=resultSet.getString("name");
            String email=resultSet.getString("email");
            System.out.println("name: "+name+" email: "+email);

        }
        statement.close();
        connection.close();
}

output:

zhangsan 1136667341@qq.com
zhangsan 1136667341@qq.com
zhangsan meiya@cn-meiya.com
lisi meiyuan@0757info.com
wangwu melodylu@buynow.com
xiaoxiao kevintian126@126.com
xiaohie wq901200@hotmail.com
zhouli tony@erene.com.com

Github项目链接,含完整jar包和项目代码:代码。欢迎star。

返回主页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiangxiaoju

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值