【JDBC】入门增删改查(一)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【JDBC】入门增删改查
  1. JDBC
  1. JDBC概述

JDBC(Java DataBase Connectivity,    java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。

XML方式:


2a8a1bd681094718989687f24c1bc3f2.png

JDBC方式:


b97001c2444e448894957df2768532ae.png

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


类:


DriverManager:用于注册驱动


接口:


Connection: 表示与数据库创建的连接


PreparedStatement : sql语句发射器


ResultSet: 结果集或一张虚拟表


今天我们使用的是mysql的驱动mysql-connector-java-5.1.47.jar


  1. JDBC入门案例
  1. 需求描述


需求:


使用java代码 链接到数据库  查询category表下的所有数据  将查询到的结果 显示到控制台

显示效果:


867ac57d9eac4af4a1f9302a29ce2fc2.png


  1. 实现思路

项目中添加驱动包链接数据库. 发射语句得到结果,对结果进行遍历


e2d4d6aff2ec4dc3acf9f4b95cf9718e.png


  1. 准备工作
#创建数据库
create database day05pre;
#使用数据库
use day05pre;
###创建分类表
create table category(
cid int PRIMARY KEY AUTO_INCREMENT  ,
  cname varchar(100)
);
#初始化数据
insert into category (cname) values('家电');
insert into category (cname) values('服饰');
insert into category (cname) values('化妆品');

创建项目导入Jar包

创建lib目录,用于存放当前项目需要的所有jar包

选择jar包,右键执行build path / Add to Build Path


664900a699904878823db93f74f59702.png

  1. 书写方法完成查询

方法内部按照如下步骤书写:

//1.注册驱动  获取连结
//2.发射语句 拿到结果进行处理
//3.关闭资源
以查询为例的代码实现
package com.czxy.demo01;
import java.sql.*;
public class Test01 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.注册驱动  获取连结
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day05pre", "root", "root");
        //2.发射语句 拿到结果进行处理
        PreparedStatement pps = conn.prepareStatement("select * from category");
        ResultSet resultSet = pps.executeQuery();
            //查看结果
        while (resultSet.next()){
            int cid = resultSet.getInt("cid");
            String cname = resultSet.getString("cname");
            System.out.println(cid+" : "+cname);
        }
        //3.关闭资源
        resultSet.close();
        pps.close();
        conn.close();
    }

da794d23af964315b749946f78847fe2.png

  1. API详解
  1. API详解:注册驱动

语法: Class.forName("com.mysql.jdbc.Driver");

固定写法: com.mysql.jdbc.Driver  是MySQL数据库的驱动类


通过反射获取com.mysql.jdbc.Driver对象时底层会直接注册驱动


其他写法:


DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用


原因是:


>导致驱动被注册2次。


>强烈依赖数据库的驱动jar


  1. API详解:获得链接


接口的实现在数据库驱动中。所有与数据库交互都是基于连接对象的。


Connection conn = DriverManager.getConnection(url, user, password);


语法:static Connection getConnection(String url, String user, String password)


试图建立到给定数据库 URL 的连接。


参数说明:url 需要连接数据库的位置(网址) user用户名  password 密码


例如:getConnection("jdbc:mysql://localhost:3306/day06", "root", "root");


URL:SUN公司与数据库厂商之间的一种协议。


jdbc:mysql://localhost:3306/day06


协议:子协议:// IP :端口号/具体的数据库


mysql: jdbc:mysql://localhost:3306/day04或者jdbc:mysql:///day14(默认本机连接)


oracle数据库: jdbc:oracle:thin:@localhost:1521:sid


API详解:java.sql.PreparedStatement接口: 操作sql语句,并返回相应结果

String sql = "某SQL语句";


PreparedStatement pst = conn.prepareStatement(sql);


对象pst就是SQL语句的发射器,可以发射SQL语句,并获取执行结果


常用方法:


int executeUpdate(); --执行insert update delete语句.

ResultSet executeQuery(); --执行select语句.

boolean execute(String sql); --仅当执行select并且有结果时才返回true,执行其他的语句返回false.


  1. API详解:处理结果集(注:执行insert、update、delete无需处理)


ResultSet实际上就是一张二维的表格,我们可以调用其boolean next()方法指向某行记录,当第一次调用next()方法时,便指向第一行记录的位置,这时就可以使用ResultSet提供的getXXX(int col)方法(与索引从0开始不同个,列从1开始)来获取指定列的数据:


rs.next();//判断下一行有没有数据,如果有返回true否则返回false


rs.getInt(1);//获取第一行第一列的数据


5760b5554b1b4f83a8a67d62ffd9e318.png

常用方法:


Object getObject(int index) // Object getObject(String name) 获得任意对象

String getString(int index)// String getString(String name) 获得字符串

int getInt(int index)//int getInt(String name) 获得整型

double getDouble(int index)// double getDouble(String name) 获得双精度浮点型

Eg:

91ec7b86fb8d4ac2a80b226c82fb0934.png

  1. API详解:释放资源

与IO流一样,使用后的东西都需要关闭!关闭的顺序是先得到的后关闭,后得到的先关闭。

rs.close();

Pps.close();

con.close();


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
存储 数据处理 数据库
深入了解达梦数据库的增删查改操作:从入门到精通
深入了解达梦数据库的增删查改操作:从入门到精通
|
3天前
|
Java 数据处理 流计算
实时计算 Flink版产品使用合集之可以通过JDBC连接器来连接Greenplum数据库吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
14 1
|
3天前
|
数据库 Android开发
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
|
5天前
|
SQL Java 数据库连接
Java一分钟之-JDBC:Java数据库连接基础
【5月更文挑战第14天】JDBC是Java与关系数据库交互的API,常见问题包括资源管理、SQL注入和性能优化。易错点涉及驱动加载、空指针异常和事务管理。避免这些问题的方法有使用try-with-resources自动关闭资源、预编译PreparedStatement以防止SQL注入,以及正确管理事务。示例代码展示了基本的JDBC连接和查询。在实际开发中,推荐使用ORM框架如Hibernate或JPA来简化数据库操作。
15 1
|
5天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
17 6
|
5天前
|
SQL Java 关系型数据库
零基础轻松入门Java数据库连接(JDBC)
零基础轻松入门Java数据库连接(JDBC)
13 0
|
5天前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
12 0
|
5天前
|
安全 Java 数据库连接
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
|
5天前
|
存储 Oracle 关系型数据库
达梦数据库入门语法:从基础到进阶的指南
达梦数据库入门语法:从基础到进阶的指南
|
5天前
|
API 数据库 Python
Python web框架fastapi数据库操作ORM(二)增删改查逻辑实现方法
Python web框架fastapi数据库操作ORM(二)增删改查逻辑实现方法