JDBC 实现增删改查的实际操作,很简单

news2025/1/23 8:58:57

大家好,今天给大家分享一下JDBC 实现增删改查的实际操作

我们还是使用的Maven的方式, 首先要创建一个干净的Maven webapps项目

看这个就可以了

要导入相关的依赖



 <dependencies>
       

            <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.18</version>
            </dependency>



    </dependencies>

这是完整的pom.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>MaDemo01</artifactId>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>untitled</module>
    </modules>
    <!--    定义项目的打包方式-->
  <packaging>pom</packaging>
    <properties>
<!--        这是设置jdk的编译版本-->
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
        <file.encoding>UTF-8</file.encoding>
        <!--        设置它支持中文-->
    </properties>



    <dependencies>


            <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.18</version>
            </dependency>



    </dependencies>
    <build>
        <plugins>
<!--            插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>

                </configuration>
            </plugin>




        </plugins>
    </build>

</project>

在这里创建Demo02 这个类

在这里插入图片描述

因为我们要在一个java类(就是Demo02)里 写增删改查四个相关的操作

所以我们要用上@Test 这个注解(目的就是让它每一个方法都可以独立的运行

这是我们这个类的第一部分
(作用就是添加一个数据到我们指定的数据库当中)

public class Demo02 {
    //做一个增加数据的操作

@Test
public void addtest() throws SQLException {
    Connection conn = DriverManager.getConnection
            ("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");


    Statement stat = conn.createStatement();
    //   这个 Statement   是用来处理sql语句
    //    我们要将sql 与stat进行绑定

    // String sql="";
    String sql = "insert into users values (1,'zhangsan','123456','zs@sina.com','1980-12-04')";

    stat.execute(sql);
    //执行sql语句


    conn.close();
    //关闭连接
    System.out.println("执行完成");


}

把上面的测试类(第一部分)写好之后
大家要在自己的可视化数据库管理工具上创建一下相应的数据库,以及字段

看上次的博客就可以了

(重要的就是字段

在这里插入图片描述

CREATE DATABASE `jdbcTest` CHARACTER SET utf8 COLLATE utf8_general_ci;

截图
在这里插入图片描述

运行一下我们刚刚写的方法

在这里插入图片描述
看一下结果

在这里插入图片描述

看到数据库里的结果:(这就是我们增删改查当中的加数据的操作
在这里插入图片描述

接下来我们写一下增删改查当中的删除数据的操作`)

这就是删除数据的操作(注意我们还是写在了Demo02这个类当中)

因为我们在每一个方法中都使用了@Test 这个注解, 所以它每一个方法的运行都是独立的

  @Test
    public void deletetest() throws SQLException {
        Connection conn = DriverManager.getConnection
                ("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");


        Statement stat = conn.createStatement();
        //   这个 Statement   是用来处理sql语句
        //    我们要将sql 与stat进行绑定

        // String sql="";
        String sql = "delete  from users where  id=1";

        stat.execute(sql);
        //执行sql语句


        conn.close();
        //关闭连接
        System.out.println("执行完成");


    }

运行时的截图:
在这里插入图片描述

看结果:

在这里插入图片描述

刷新数据库
在这里插入图片描述

我们看见数据库里的数据已经随着刚才deleteTest方法的执行,数据库里的数据已经删除了

在这里插入图片描述

接下来我们写一下增删改查当中的改数据的操作

这里要注意 更改数据的前提是数据库里有数据

所以我们再执行一下增加数据的操作

在这里插入图片描述

看结果:

在这里插入图片描述

看数据库里的数据

在这里插入图片描述

数据库里已经有数据了

接下来我们来执行更改数据的操作

 @Test
    public void updatetest() throws SQLException {
        Connection conn = DriverManager.getConnection
                ("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");


        Statement stat = conn.createStatement();
        //   这个 Statement   是用来处理sql语句
        //    我们要将sql 与stat进行绑定

        // String sql="";
        String sql = "update users set NAME ='李四'where  id=1";

        stat.execute(sql);
        //执行sql语句


        conn.close();
        //关闭连接
        System.out.println("执行完成");


    }

运行这个更改数据的方法

在这里插入图片描述

看方法执行结果:

在这里插入图片描述

看见数据库里的数据已经被更改了

在这里插入图片描述

接下来我们写一下增删改查当中的查数据的操作

@Test
    public void selecttest() throws SQLException, ClassNotFoundException {
    Class.forName("com.mysql.jdbc.Driver");//固定写法,加载驱动
    //2、用户信息和url
    //useUnicode=true&characterEncoding=utf8&useSSL=true    //字符转码
    String url = "jdbc:mysql://localhost:3306/jdbctest?useUnicode=true&characterEncoding=utf8&useSSL=true";
    String useName = "root";
    String password = "123456";//   这是你数据库密码
    //3、连接成功,数据库对象  Connection代表数据库
    Connection connection = DriverManager.getConnection(url, useName, password);
    //4、执行SQL的对象 Statement 执行sql的对象
    Statement statement = connection.createStatement();

    //5、执行SQL的对象 去 执行 sql,可能存在结果,查看返回结果
    //String sql = "select * from users";
    String sql = "select *  from  users";

    ResultSet resultSet = statement.executeQuery(sql);
    //返回的结果集,结果集中封装了我们全部的查询出来的结果

    while(resultSet.next()){
        System.out.println("id="+resultSet.getObject("id"));
        System.out.println("name="+resultSet.getObject("NAME"));
        System.out.println("pwd="+resultSet.getObject("PASSWORD"));
        System.out.println("email="+resultSet.getObject("email"));
        System.out.println("birth="+resultSet.getObject("birthday"));

    }
    //6、释放连接
    resultSet.close();
    statement.close();
    connection.close();

    }

然后我们运行查数据的方法

在这里插入图片描述

看结果(查询数据成功)

在这里插入图片描述

这就是jdbc对于数据进行增删改查的全部操作(就是全部代码)

import org.junit.Test;

import java.sql.*;

public class Demo02 {
    //做一个增加数据的操作

    @Test
    public void addtest() throws SQLException {
        Connection conn = DriverManager.getConnection
                ("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");


        Statement stat = conn.createStatement();
        //   这个 Statement   是用来处理sql语句
        //    我们要将sql 与stat进行绑定

        // String sql="";
        String sql = "insert into users values (1,'zhangsan','123456','zs@sina.com','1980-12-04')";

        stat.execute(sql);
        //执行sql语句


        conn.close();
        //关闭连接
        System.out.println("执行完成");


    }

    @Test
    public void updatetest() throws SQLException {
        Connection conn = DriverManager.getConnection
                ("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");


        Statement stat = conn.createStatement();
        //   这个 Statement   是用来处理sql语句
        //    我们要将sql 与stat进行绑定

        // String sql="";
        String sql = "update users set NAME ='李四'where  id=1";

        stat.execute(sql);
        //执行sql语句


        conn.close();
        //关闭连接
        System.out.println("执行完成");


    }

    {

    }

    @Test
    public void deletetest() throws SQLException {
        Connection conn = DriverManager.getConnection
                ("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");


        Statement stat = conn.createStatement();
        //   这个 Statement   是用来处理sql语句
        //    我们要将sql 与stat进行绑定

        // String sql="";
        String sql = "delete  from users where  id=1";

        stat.execute(sql);
        //执行sql语句


        conn.close();
        //关闭连接
        System.out.println("执行完成");


    }

@Test
    public void selecttest() throws SQLException, ClassNotFoundException {
    Class.forName("com.mysql.jdbc.Driver");//固定写法,加载驱动
    //2、用户信息和url
    //useUnicode=true&characterEncoding=utf8&useSSL=true    //字符转码
    String url = "jdbc:mysql://localhost:3306/jdbctest?useUnicode=true&characterEncoding=utf8&useSSL=true";
    String useName = "root";
    String password = "123456";//   这是你数据库密码
    //3、连接成功,数据库对象  Connection代表数据库
    Connection connection = DriverManager.getConnection(url, useName, password);
    //4、执行SQL的对象 Statement 执行sql的对象
    Statement statement = connection.createStatement();

    //5、执行SQL的对象 去 执行 sql,可能存在结果,查看返回结果
    //String sql = "select * from users";
    String sql = "select *  from  users";

    ResultSet resultSet = statement.executeQuery(sql);
    //返回的结果集,结果集中封装了我们全部的查询出来的结果

    while(resultSet.next()){
        System.out.println("id="+resultSet.getObject("id"));
        System.out.println("name="+resultSet.getObject("NAME"));
        System.out.println("pwd="+resultSet.getObject("PASSWORD"));
        System.out.println("email="+resultSet.getObject("email"));
        System.out.println("birth="+resultSet.getObject("birthday"));

    }
    //6、释放连接
    resultSet.close();
    statement.close();
    connection.close();

    }
}

我们做到这里,就做完了,都是还是有几点要提醒

  1. 我们在每一个方法当中使用@Test 注解写了四个方法

2. 在 执行对数据的增删改代码之后,都要刷新数据库表(一定要注意这个)

  1. 最后一个方法和前三个不一样,将结果放到了控制台上

好了,我们JDBC 实现增删改查的实际操作就到这里了,谢谢大家

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/151391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用 HTML5 Web 连接到 VMware vSphere Hypervisor

本文将向你展示如何在计算机上连接 VMware vSphere Hypervisor 7.0.3,VMware vSphere Hypervisor 7.0.3 也称为 ESXi 7.0.3。 连接 ESXi 7.0.3 下载工具以管理 ESXi 主机服务器连接 ESXi 7.0.3 服务器下载工具以管理 ESXi 主机服务器 现在不需要任何工具来管理 ESXi 7.0.3,从…

1.8周报

SourceURL:file:///home/mrl/文档/1.8周报.docx 周报 代码行数&#xff1a; 周一 611 周二 672 周三 524 周四 528 周五 450 周六 545 周日 564 遇到的问题&#xff1a; 系统配置问题&#xff1a; 在升级安装python3时&#xff0c;由于操作失误&#xff0c;导…

数据脱敏实战经验

1. 创建隐私数据类型枚举&#xff1a;PrivacyTypeEnum2. 创建自定义隐私注解&#xff1a;PrivacyEncrypt3. 创建自定义序列化器&#xff1a;PrivacySerializer4. 隐私数据隐藏工具类&#xff1a;PrivacyUtil5. 注解使用这两天在整改等保测出的问题&#xff0c;里面有一个“用户…

如何将.md文件转换为pdf

目录 1.step1&#xff1a; 安装Visual Studio Code&#xff08;简称VScode&#xff09; 2.step2&#xff1a; 安装定制化插件 3.step3&#xff1a; 进入预览窗口模式 4.step4&#xff1a; 进行格式转换 1.step1&#xff1a; 安装Visual Studio Code&#xff08;简称VScode&a…

【实战篇】39 # 如何实现世界地图的新冠肺炎疫情可视化?

说明 【跟月影学可视化】学习笔记。 世界地图新冠肺炎疫情可视化 下面将实现世界地图新冠肺炎疫情可视化。数据用的是从 2020 年 1 月 22 日到 3 月 19 日这些天的新冠肺炎疫情进展。效果类似下图&#xff1a;https://covid19.who.int/ 步骤一&#xff1a;准备世界地图可视化…

[ 数据结构 ] 迪杰斯特拉算法(最短路径问题)

0 最短路径问题 战争时期&#xff0c;胜利乡有 7 个村庄(A, B, C, D, E, F, G) &#xff0c;现在有六个邮差&#xff0c;从 G 点出发&#xff0c;需要分别把邮件分别送到 A, B, C , D, E, F 六个村庄各个村庄的距离用边线表示(权) &#xff0c;比如 A – B 距离 5 公里问&#…

不透明度和填充的区别

提纲 1、不透明度和填充的相同之处 2、不透明度和填充的不同之处 3、从字面意思理解不透明度和填充 1、不透明度和填充的相同之处 在初学PS时&#xff0c;一定对“不透明度”和“填充”非常迷惑&#xff0c;它们在图层面板的这个位置 这篇就来详细聊聊这两个滑块&#xff0…

SSR是什么?Vue中怎么实现?

一、是什么 Server-Side Rendering 称其为SSR&#xff0c;意为服务端渲染 指由服务侧完成页面的 HTML 结构拼接的页面处理技术&#xff0c;发送到浏览器&#xff0c;然后为其绑定状态与事件&#xff0c;成为完全可交互页面的过程 先来看看Web3个阶段的发展史&#xff1a; 传…

Dart基础

一、dart概述 Dart简介 Dart 是谷歌开发的&#xff0c;类型安全的&#xff0c;面向对象的编程语言&#xff0c;被应用于Web、服务器、移动应用和物联网等领域。Dart 诞生于 2011 年 10 月 10 日Dart简单易学(类似TypeScript, 是强类型的语言)运行方式 原生虚拟机(Dart 代码可…

从执行者到管理者的角色转变

前言 在职场中因为岗位职责的差异&#xff0c;我们通过被分为两种角色&#xff0c;即执行者和管理者&#xff1b;大部分管理者也是从执行者晋升来的。 因为思维的惯性&#xff0c;导致我们会很容易带着执行者的意识去做管理&#xff0c;遇到问题就会想着自己动手去做&#xff0…

智慧防雷+智能防雷的综合应用方案

随着物联网时代的到来&#xff0c;信息共享成为社会运转的动力&#xff0c;伴随着现代建筑、交通、医疗以及工业制造等行业的智能化&#xff0c;大量微电子网络、自动化设备、计算机等投入使用&#xff0c;其集成度高、工作电压小、工作电流低、绝缘强度低、耐过电压和过电流能…

HDMI接口电路设计

HDMI是一个能传输高清视频和多声道音频的接口&#xff0c;常用的有TYPE A&#xff0c;TYPEC&#xff0c;和TYPE D的HDMI&#xff0c;最常用的是这种TYPE A的HDMI接口&#xff0c;这个是母座HDMI TYPE A插座的引脚信号定义大家可以看下&#xff0c;总共包含19个引脚。其中TMDS d…

Hudi的核心概念 —— 索引(Index)

文章目录原理索引选项全局索引与非全局索引索引的选择策略原理 Hudi 通过索引机制提供高效的 upserts&#xff0c;具体是将给定的 hoodie key(record key&#xff08;记录键&#xff09; partition path)与文件 id&#xff08;文件组&#xff09;建立唯一映射。这种映射关系&…

Axure原型模板大全(100多款超高清高保真原型),APP+WEB精美版,绝对大神出品

LIB012 - Axure交互设计常用素材组件包(界面模型、流程图素材)LIB001 - Axure交互原型Web元件库完整版LIB001v2 - Axure WEB前后端交互原型通用元件库 v2LIB003 - Axure交互原型移动端元件库完整版LIB005 - Axure手机移动端交互原型通用元件库 v2LIB006 - Axure IPAD移动端交互…

Java工作流详解(附6大工作流框架对比)

目录1.什么是工作流2.工作流应用场景3.工作流实现方式4.有哪些工作流框架什么是工作流工作流(Worklow)工作流是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流建模&#xff0c;即将工作流程中的工作如前后组织在一起的逻辑和规则&#xff0c;在计算机中以恰当的…

C语言缓冲区与重定向

目录 什么是缓冲区&#xff1f; 刷新策略 模拟实现重定向 标准输出和标准错误有什么区别&#xff1f; 上文提到关闭1号文件&#xff08;标准输出文件&#xff09;&#xff0c;根据文件描述符分配规则&#xff0c;再打开的文件的描述符就是1&#xff0c;看以下代码&#xf…

差分数组详解

目录1.概述2.代码实现3.应用本文参考&#xff1a; LABULADONG 的算法网站 1.概述 &#xff08;1&#xff09;差分数组的思想与前缀和算法的非常近似&#xff08;有关前置和算法的具体细节可以参考前缀和算法这篇文章&#xff09;&#xff0c;其主要适用于频繁地对原始数组的某…

为民服务 智慧政务数据可视化大屏一体化系统

为顺应全球发展趋势&#xff0c;以及我国当前经济社会发展进步的需要&#xff0c;加快政府服务信息化、数字化建设紧跟国际步伐的同时也需要开拓引领。今天给大家分享一个基于 数维图 的 SovitChart编辑器 构建大屏可视化场景的案例——智慧政务数据可视化大屏一体化平台。建设…

RabbitMQ 总结二(MQ原理 通信方式 消息应答机制)

目录 MQ的构成 生产者 交换机 队列 消费者 通信方式 Producer -> Broker (包含Exchange) Exchange -> Binding -> Queue -> Consumer 消息应答 为什么引入消息应答 消息自动重新入队 如何进行消息应答 案例Demo MQ的构成 生产者 消费者 交换机和队列…

【学习笔记之Linux】工具之yum

yum是Linux的软件包管理器。   什么是软件包&#xff1f;在Linux中安装软件&#xff0c;可以通过下载程序源码&#xff0c;然后编译得到可执行程序。但是这样非常麻烦&#xff0c;于是就有人把常用的软件编译好之后做成软件包&#xff0c;然后把软件包放在一个服务器上。   …