JavaWeb——JDBC篇

23 篇文章 0 订阅
15 篇文章 0 订阅

JDBC

JDBC的全称为:JavaDataBaseConnectivity。翻译过来就是Java数据库连接
JDBC的作用:看名字就知道,JDBC就是用于连接Java和数据库的一个技术
废话不多说,我们直接进入主题。

JDCB的使用

JDBC技术的使用我们主要围绕三个问题来学习。

  1. JDBC技术是什么?
  2. JDBC技术有什么用,能做什么?
  3. JDBC怎么用?

JDBC技术是什么?这个问题文章开篇已经讲了,这里就不再赘述了。
那么JDBC有什么用呢?上面也提到了,主要就是用于连接Java语言和数据库。

什么是连接Java语言和数据库呢?

用大白话来说就是:“我要用java语言来使用数据库”。或者说:“我要通过编写java语言来使用数据库”。这个时候JDBC技术就可以实现你的这个想法。也就是说JDBC是java语言和数据库的桥梁。有了桥梁才可以互通吧?
当我们使用JDBC技术后,Java语言和数据库也就互通了,这个时候我们就可以通过编写Java代码来操作数据可了。

JDBC怎么用?

JDBC 的 API 提供了以下接口和类:
API:应用程序接口 Application Programming Interface
Connection : 此接口具有接触数据库的所有方法。该连接对象表示通信上下文,即,所有与数据库的通信仅通过这个连接对象进行。
PreparedStatement : 使用创建于这个接口的对象将 SQL 语句提交到数据库。
ResultSet : 在 SQL 查询后,保存获得的数据。并且它可以作为一个迭代器遍历数据。

JDBC技术的使用流程:

  1. 注册驱动(可以省略)
  2. 获取连接对象
  3. 编写sql语句
  4. 获取预编译对象
  5. 填写占位符数据
  6. 执行sql语句
  7. 处理返回结果
  8. 关闭资源

上代码咯:

public class JDBCTest {

    public static void main(String[] args) {
        Driver driver = null;//驱动对象
        Connection conn = null;//连接对象
        PreparedStatement ps = null;//预编译对象
        ResultSet rs = null;//结果集对象

        try {
            //注册驱动
            //方式一
            driver = new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);
            //方式二
            Class.forName("com.mysql.jdbc.Driver");
            //获取连接对象
            // mysql是8.0及以上的用这个url
            String url8 = "jdbc:mysql://localhost:3306/bjpowernode?useUnicode=true&serverTimezone=UTC";
            // mysql低于8.0的用这个url
            String url5 = "jdbc:msql://localhost:3306/bjpowernode?useUnicode=true&CharacterEncoding=utf8";
            //username,password写自己的mysql账号密码就好了
            String username = "root";
            String password = "zxcvbnm1";
            conn = DriverManager.getConnection(url8,username,password);
            //sql语句
            String sql = "select * from student where stuNo = ?";
            //获取预编译对象
            ps = conn.prepareStatement(sql);
            //填写占位符数据
            ps.setString(1,"123");
            //执行sql语句
            rs = ps.executeQuery();
            //处理返回结果
            while(rs.next()){
                System.out.println("学生的姓名:"+rs.getString("name"));
                System.out.println("学生的年龄"+rs.getString("age"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            //关闭资源
            if (rs != null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (ps != null){
                try {
                    ps.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

现在我们慢慢分析一下整个流程吧。

  1. 注册驱动(可以省略)
    一般推荐使用第二种方式,更加快捷。当然,也可以省略这一步骤直接进入第二步。
    在这里插入图片描述

  2. 获取连接对象
    获取连接对象我们需要三个参数:url(数据库驱动和数据库的地址)、username(数据库的账号)、password(数据库的密码)。

    在这里插入图片描述

  3. 编写sql语句

    占位符:占位符是一个动态参数,根据业务需求进行变化。符号为 ? 。我们通过PreparedStatement类中的方法可以对占位符进行赋值,下面会讲到。
    在这里插入图片描述

  4. 获取预编译对象

    在这里插入图片描述

  5. 填写占位符数据
    通过PrepardStatement对象中的setXXX(index,value)方法给占位符赋值
    在这里插入图片描述

  6. 执行sql语句

    查询语句用:executeQuery()
    增删改语句用:executeUpdate()
    在这里插入图片描述

  7. 处理返回结果

    处理查询返回的结果集:
    在这里插入图片描述

    处理增删改返回的结果集:
    如果返回值大于0,则表示数据增删改成功,反之,则表示失败。

    System.out.println(rs > 0? "成功":"失败");
    
  8. 关闭资源

在这里插入图片描述

以上8个步骤就是JDBC的基本使用。

牛刀小试一下(动手)

目标:

  1. 增加班级
  2. 删除班级
  3. 修改班级
  4. 根据班级查询学生。
  5. 查询所有学生
  6. 根据学号查询学生
  7. 根据姓名和年龄范围查询学生
  8. 添加学生
  9. 修改学生
  10. 根据学号删除学生

班级表sql代码

create table classes
(
  id   varchar(50) primary key,
  cname varchar(50) not null,
  info varchar(50) not null
);

学生表sql代码

create table if not exists student(
    stuNo varchar(50)primary key,
    name varchar(50) not null,
    age int,
    sex enum('男','女','保密'),
    status char(1) default '0',
    cid varchar(50),
    foreign key(cid) references classes(id)
);

步骤:

  1. 创建相关表(这个会吧,这里就不演示了)
  2. 创建表的实体类(根据字段创建属性)
  3. 创建工具类和相关配置文件
  4. 创建Dao接口和接口实现类
  5. 创建Service接口和接口实现类
  6. 测试

最后具体代码看附件。代码是我自己写的,并不是标准答案,每个人想法不同写法也不同,所以我的代码你们可以借鉴,但不必完全一样。

点击跳转下载附件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值