【JDBC入门】(一)初识JDBC

一、什么是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','[email protected]');
insert into userInfo(name,email) value('zhangsan','[email protected]');
insert into userInfo(name,email) value('zhangsan','[email protected]');
insert into userInfo(name,email) value('lisi','[email protected]');

insert into userInfo(name,email) value('wangwu','[email protected]');

insert into userInfo(name,email) value('xiaoxiao','[email protected]');
insert into userInfo(name,email) value('xiaohie','[email protected] ');
insert into userInfo(name,email) value('zhouli','[email protected]');

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 [email protected]
zhangsan [email protected]
zhangsan [email protected]
lisi [email protected]
wangwu [email protected]
xiaoxiao [email protected]
xiaohie [email protected]
zhouli [email protected]
发布了50 篇原创文章 · 获赞 52 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_43058685/article/details/104266482
今日推荐