JDBC核心技术

一、JDBC概述

1.1数据的持久化

持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”而持久化的实现过程大多通过各种关系数据库来完成

1.2Java中的数据存储技术

JDBC直接访问数据库,JDBC是java访问数据库的基石,JDO、Hibernate、MyBatis等只是更好的封装了JDBC。

1.3JDBC介绍

JDBC:java连接数据库技术统称

JDBC是有俩个部分组成:1,JAVA提供的JDBC规范2,各个数据库厂商的实现驱动jar包

JDBC技术是一种典型的面向接口编程

优点:我们只需要学习jdbc接口规定方法,即可操作所有数据库软件,项目中期需要切换数据库,我们只需要更新第三方驱动jar包,不需要更改代码

JAVA方向:提供了规范接口,规定数据库操作方法!

1.4编程编写步骤  

涉及具体核心类和接口

DriverManager

1.将第三方数据库厂商的实现驱动jar注册到程序中

2.可以根据数据库连接信息获取connection

Connection

1.和数据库建立的连接,在连接对象上,可以多次执行数据库curd动作

2.可以获取statement和preparestatement,callablestatement对象

Statement|PreparedStatement|CallableStatement

1.具体发送SQL语句到数据库管理软件的对象

2.不同发送方式稍有不同!

Result

1.面向对象思维的产物 抽象成数据库的查询结果表

2.存储DQL查询数据库结果的对象

3.需要我们进行解析,获取具体的数据库数据

JDBC基本使用步骤

  1. 注册驱动

  2. 获取连接

  3. 创建发送sql语句对象

  4. 发送sql语句,并获取返回结果

  5. 结果集解析

  6. 资源关闭

模拟账号登录

package com.at.api.statement;

import com.mysql.cj.jdbc.Driver;

import java.sql.*;
import java.util.Scanner;

/**
 * @Author:CYF
 * @Data:2023/03/12/20:40
 * @Description: 模拟用户登录
 */
public class StatementUserLoginPart {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        //1.键盘输入账号密码
        Scanner scanner = new Scanner(System.in);
        System.out.println("请你输入账号:");
        String root = scanner.next();
        System.out.println("请你输入密码:");
        String pass = scanner.next();
        //2.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //3.获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/atguigu";
        Connection connection = DriverManager.getConnection(url, "root", "123456");
        //4.创建statement 创建小车
        Statement statement = connection.createStatement();
        String sql = "select * from t_user where account = '"+root+"' and password = '"+pass+"'";
        ResultSet resultSet = statement.executeQuery(sql);
        //5.解析结果集
        if (resultSet.next()) {
            System.out.println("账号:"+root +"密码:"+pass+"账号密码正确》》》登录成功!");
        }else{
            System.out.println("ERROR");
        }
        //6.释放资源
        resultSet.close();
        statement.close();
        connection.close();
    }
}
posted @ 2023-03-12 22:54  CYF0913  阅读(22)  评论(0)    收藏  举报