JDBC学习

前言:

本文主要是作者在学习JDBC时的学习总结,基于教材(Java 基础入门第三版)的介绍作出的总结,总结出来让自己更好的熟悉和养成写博客的好习惯,如有侵权,请联系作者删除,谢谢😊😘🙌

JDBC介绍

JDBC – Java数据库连接(Java Database Connectivity) ,他是一套用于执行SQL语句的Java API

JDBC 是在应用程序与数据库之间起到了桥梁的作用

JDBC 的核心功能就是为开发人员提供操作数据库的Java API类库,JDBC的API主要位于java.sql包里

1. 搭建数据库环境

首先得在本机安装好数据库【本文不做过多阐述】,本案例用的是命令行操作实现,具体步骤如下:

先是打开mysql mysql -u root -p,输入数据库密码,成功进入;

然后,create database jdbc;创建一个叫做jdbc的数据库;

然后,use jdbc;使用jdbc数据库;

接着,创建users

mysql> create table users(
    -> id int primary key auto_increment,
    -> name varchar(40),
    -> password varchar(40),
    -> email varchar(60),
    -> birthday date);

然后,插入数据

mysql> insert into users(name,password,email,birthday) values('zhangs','123456','zs@sina.com','1980-12-04'),
    -> ('lisi','123456','lisi@sina.com','1981-12-04'),
    -> ('wangwu','123456','wangwu@sina.com','1979-12-04');

然后,查询数据

mysql> select *from users;

结果展示:这样就成功啦~~

vHKHPO.png

2. 创建项目环境,导入数据库驱动程序

可创建如图所示的项目结构

vHKLxH.png

从官方网站下载mysql-connector-java-8.0.30.jar包,放入lib目录下,并添加到IEDA的依赖项中,步骤如下:

选择 FILE-Project Structure-Modules-Dependencies-选择“+”-选择第一个-添加下载好的jar包,再Apply, OK,即可。

3. 编写JDBC程序

主要步骤(6步)

 1. 注册数据库的驱动程序
 2. 通过 DriverManager 获取数据库连接
 3. 通过 Connection 对象获取 Statement 对象
 4. 使用 Statement 执行 SQL 语句
 5. 操作结果集
 6. 回收数据库资源

😊1. 注册数据库的驱动程序

法一:DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver()); 【会注册俩次】

法二:Class.forName("com.mysql.cj.jdbc.Driver");【一次】【常用法二】

😊2. 通过 DriverManager 获取数据库连接

String url = "jdbc:mysql://localhost:3306/jdbc";
//   "? serverTimezone=GMT%2B8&useSSL=false";-- 时区 + SSL【防止报错】
// serverTimezone=GMT%2B8 -- 北京时间  
// 数据库用户名
String usename = "root" ;
// 数据库密码
String password = "****" ;
Connection conn = DriverManager.getConnection(url,usename,password);

😊 3. 通过 Connection 对象获取 Statement 对象

Statement stmt = conn.createStatement();

😊 4. 使用 Statement 执行 SQL 语句

String sql = "select * from users";  // 不可以插入多条语句
ResultSet rs = stmt.executeQuery(sql);

😊5. 操作结果集

System.out.println("id   |   name    | password    |"
+"   email       |   birthday");

while(rs.next()){  
    int id = rs.getInt("id");
    String name = rs.getString("name");
    String psw = rs.getString("password");
    String email = rs.getString("email");
    Date birthday = rs.getDate("birthday");
    System.out.println(id + "    |   " + name +
            "   |  " + psw + "   |   " + email +
            "    |   " + birthday);
}
  • re.next(); 一条条读取数据

6. 回收数据库资源

  • 为了保证资源被释放,释放资源库的操作应放在finally代码块中

  • 回收顺序:rs-stmt-conn 与创建顺序相反

  • 回收rs,其他也是类似

    • if (rs != null) {
          try {
              rs.close();
          } catch (SQLException throwables) {
              throwables.printStackTrace();
          }
          rs = null;
      }
      

示例代码

  • Example01.java
package com.itheima.jdbc.example;

import java.sql.*;

public class Example01 {
    public static void main(String[] args) {
        Statement stmt = null;
        ResultSet rs = null;
        Connection conn = null;
        try{
            // 1. 注册数据库的驱动程序
           //法一: DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 2. 通过 DriverManager 获取数据库连接
            String url = "jdbc:mysql://localhost:3306/jdbc";
//                    "? serverTimezone=GMT%2B8&useSSL=false";    -- 时区 + SSL
            // 数据库用户名
            String usename = "root" ;
            // 数据库密码
            String password = "****" ; 
            conn = DriverManager.getConnection(url,usename,password);

            // 3. 通过 Connection 对象获取 Statement 对象
            stmt = conn.createStatement();

            // 4. 使用 Statement 执行 SQL 语句
//            String sql2 = " insert into users(name,password,email,birthday) value ('chenwanjun','123456','cwj@qq.com','2003-06-12');";  
//            int i = stmt.executeUpdate(sql2);
//            System.out.println(i);
            String sql = "select * from users";
            rs = stmt.executeQuery(sql);

            // 5. 操作结果集
            System.out.println("id   |   name    | password    |"
            +"   email       |   birthday");

            while(rs.next()){
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String psw = rs.getString("password");
                String email = rs.getString("email");
                Date birthday = rs.getDate("birthday");
                System.out.println(id + "    |   " + name +
                        "   |  " + psw + "   |   " + email +
                        "    |   " + birthday);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            // 6. 回收数据库资源
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
                rs = null;
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
                stmt = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
                conn = null;
            }
        }
    }
}

运行,结果如下就成功啦~~

vHMSdP.png

到此,读者对JDBC就有基础的了解啦,能够独立编写JDBC程序就OK啦~~作者未对JDBC的常用API做详细的介绍,读者可以自己再好好深入一下😉😉😉

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值