JDBC--原理及入门案例

1 JDBC概述

  • JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。
  • JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。今天我们使用的是mysql的驱动mysql-connector-java-5.1.37-bin.jar
    在这里插入图片描述

JDBC规范(掌握四个核心对象):

  • DriverManager:用于注册驱动(jdbc接口的实现类组成的jar包)
  • Connection: 表示与数据库创建的连接
  • Statement: 操作数据库sql语句的对象
  • ResultSet: 结果集或一张虚拟表

2 JDBC原理

  • Java提供访问数据库规范称为JDBC,而生产厂商提供规范的实现类称为驱动。
    在这里插入图片描述
  • JDBC是接口驱动是接口的实现,没有驱动将无法完成数据库连接,从而不能操作数据库!每个数据库厂商都需要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都由数据库生成厂商提供。
    在这里插入图片描述

3 JDBC入门案例

准备数据

create database db_day0301;

use db_day0301;

-- 创建表
create table tb_user(
    uid int primary key auto_increment,
    username varchar(32) not null unique,
    password varchar(32) not null,
    nickname varchar(32)
);
-- 插入数据
insert into tb_user values(null,'zhangsan','123','张三'), (null,'lisi','123','李四'), (null,'wangwu','123','王五');
  • 导入驱动jar包
  • 创建lib目录,存放mysql的驱动mysql-connector-java-5.1.37-bin.jar
  • 选中mysql的jar包,右键选择“ Add as Library…” 完成jar导入
    在这里插入图片描述
    在这里插入图片描述

开发步骤

  • 注册驱动.
  • 获得连接.
  • 获得执行sql语句的对象
  • 执行sql语句,并返回结果
  • 处理结果
  • 释放资源.

案例实现

  • 查询所有用户
public static void main(String[] args) throws Exception {
        /**
         * 1.注册驱动
         * 2.获得连接
         * 3.获取执行sql语句的对象
         * 4.执行sql语句, 并返回结果
         * 5.处理结果
         * 6.释放资源
         */

        //1.注册驱动,  就是把 Driver.class 文件 加载到内存
        Class.forName("com.mysql.jdbc.Driver");

        /**
         *   2.获得连接
         *   参数 url : 需要连接数据库的地址  jdbc:mysql://IP地址:端口号/要连接的数据库名称
         *   参数user : 连接数据库 使用的用户名
         *   参数password: 连接数据库 使用的密码
         */
        String url = "jdbc:mysql://localhost:3306/day03_db";
        Connection conn = DriverManager.getConnection(url, "root", "root");
        System.out.println("conn = " + conn);

        //3.获取执行sql语句的对象
        String sql = "select * from tb_user";
        PreparedStatement stmt = conn.prepareStatement(sql);

        //4.执行sql语句, 并返回结果
        ResultSet rs = stmt.executeQuery();
        System.out.println("rs = " + rs);

        //5.处理结果
        while (rs.next()) {
            //int uid = rs.getInt(1); // 通过列的位置 获取值
            //int uid2 = rs.getInt("cid"); //通过列的名称 获取值
            int uid = rs.getInt("uid");
            String username = rs.getString("username");
            String password = rs.getString("password");
            String nickname = rs.getString("nickname");

            System.out.println("uid = " + uid + ", username = " + username + ", password = " + password + ", nickname = " + nickname);
        }

        //6.释放资源
        rs.close();
        stmt.close();
        conn.close();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值