JDBC数据库连接

一、JDBC概念

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。通俗易懂说:jdbc就是java操作数据库

jdbc的本质就是:java官方提供的一套规范接口,用于帮助程序员开发者操作不同的关系型数据库(mysql/Oracle/SQLServer),jdbc封装了一系列的增删改查的操作,数据库厂商封装实现了jdbc到各种数据库的底层细节。

二、JDBC连接数据库

1.创建表

2.在java官方只是提供JDBC规范的接口,如果需要连接到具体的数据库 例如

mysql ,我们就需要导入mysql的依赖jar包,具体实现是有不同的数据库

产商实现的。

1.导入mysql驱动jar包;

下载完后,直接创建一个libs文件夹,把jar包复制粘贴过来

 

 

右键jar包,点击Add as Library就可以使项目有了mysql的驱动jar包

 

2.注册驱动 javase 反射机制Class.forName()

3.获取数据库连接

4.获取执行者对象

5.执行sql语句并获取返回结果

6.对结果进行处理

7.释放jdbc资源

jdbc驱动依赖下载:mysql依赖jar包

package com.lkw.JDBC;
import java.sql.*;
public class Demo01 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.导入我们的mysql驱动jar包(已完成)
        //2.注册mysql驱动jar包
        Class.forName("com.mysql.jdbc.Driver");      //反射机制应用在:jdbc注册驱动/IoC容器
        //3.创建数据库连接  协议 http协议、tcp协议、jdbc协议
        Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/kaiwen?serverTimezone=UTC", "root", "");
        //4.获取执行者对象
        Statement statement = connection.createStatement();
        //5.执行开发者自己编写的sql语句
        ResultSet resultSet = statement.executeQuery("select * from customers"); //执行查询sql语句
        //6.执行sql语句的结果处理操作
        while (resultSet.next()) {   //如果有下一行数据则取出该行数据,如果没有,则返回false
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            String phone = resultSet.getString("phone");
            System.out.println("id:" + id + "name:" + name + "phone:" + phone);
        }
        //7.关闭这些资源
        connection.close();
        statement.close();
    }
}

常见问题

1.Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

原因是没有引入mysql 驱动jar包

2. No suitable driver found for jdbc:mysql//127.0.0.1:3306/mayikt1?serverTimezone=UTC

原因jdbc地址填写是错误的

3. Access denied for user 'root1'@'localhost' (using password: YES)

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.jav

mysql 连接账户和密码 错误

4. Table 'mayikt.mayikt_users11' doesn't exist 在我们的mayikt数据库

是没有mayikt_users11

JDBC API 详解

DriverManager 驱动程序管理器是负责管理驱动程序的,驱动注册以后,会保存在DriverManager中的已注册列表中后续的处理就可以对这个列表进行操作.

注册驱动方式

1.DriverManager.registerDriver();

2.写代码实现

Class.forName("com.mysql.jdbc.Driver");

3.com.mysql.jdbc.Driver类中存在静态代码快

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    //
    // Register ourselves with the DriverManager
    //
    static {
        try {
            java.sql.DriverManager.registerDriver(new Driver());
        } catch (SQLException E) {
            throw new RuntimeException("Can't register driver!");
        }
    }

4.开发者是不需要调用DriverManager.registerDriver();方法,因为我们在使用class.forName 会加载到我们的

com.mysql.jdbc.Driver 通过Driver静态代码快 注册我们的Driver驱动。

5.mysql5之后,在jar包中存在一个java.sql.Driver配置文件,文件指定加载com.mysql.cj.jdbc.Driver

通过SPI机制实现。

类加载器、spi 反射技术 javase进阶基础

6.获取连接Connection 连接对象

Connection connection = DriverManager.getConnection("数据库连接地址",
"用户名称", "用户密码");

参数:指定连接的路径 语法:jdbc://mysql://ip地址:端口号码/数据库名称

user:用户名称

pwd:用户的密码

ResultSet结果集对象

1.判断结果集是否有数据: boolean next();

1.1.有数据返回true 并将索引向下移动一行

1.2.没有数据返回false

2.获取结果集中的数据:xxx.getxx(列名称) 注意与 数据库数据类型需要对应

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值