通过Statement静态语句,实现CRUD操作

news2024/11/25 15:24:33

首先你需要创建 数据库 和 s_students学生表,再进行下一步的 增(add)删(del)改(update)查(query)

查询所有学生姓名:

 @Test
   void query(){
      try{
         Statement st = conn.createStatement();
         ResultSet rs = st.executeQuery("select * from t_students");
         //ResultSet rs = st.executeQuery("select * from t_students order by sid desc limit 3");
         while(rs.next()){
            System.out.printf("sid:%d,sname:%s%n",rs.getInt(1),rs.getString("sname"));
         }
      }catch (Exception e){
         e.printStackTrace();
      }
   }

执行结果:

 查询最后3名学生姓名:t_students后 + "order by sid desc limit 3" (双引号内)

 增加一名学生信息:姓名,性别,年龄,得分,出生日期,专业

                                 (红豆,男,20,90,2023-8-11,软件)

 @Test
        void add(){
      //使用statmement语句 insert into 语句
      try{
         Statement simt = conn.createStatement();
         String sql =String.format("insert into t_students values(null,'%s','%s','%d','%d','%s','%s')", "红豆","男",20,90,"2023-8-11","软件");
         System.out.println(sql);
         int rows = simt.executeUpdate(sql);
         if(rows >0){
            System.out.printf("数据库插入成功: %d条%n",rows);
         }

         query();
      }catch (Exception e){
         e.printStackTrace();
      }
   }

执行结果:

 插入成功并输出语句内容:

以学生sid 为16,17为例进行删除信息

 删除 sid为16的学生:

 @Test
   void del(){
      //使用st 语句删除
      try{
         Statement st = conn.createStatement();
         String sql = String.format("delete from t_students where sid = %d",16);
         int ok = st.executeUpdate(sql);
         if(ok>0){
            System.out.printf("删除成功:%d条%n",ok);
         }else {
            System.out.printf("\33[31m删除成功:%d条\33[0m%n",ok);

         }
         System.out.println();
         query();
      }catch (Exception e){
         e.printStackTrace();
      }
   }

执行结果:

 再次删除sid为16的学生会显示:

需插入:System.out .printf("\33[31m删除成功:%d条\33[0m%n",ok);

修改学生姓名:sid = 17的学生姓名红豆更改为小强

 @Test
   void update(){
      try{
         Statement st = conn.createStatement();
         String sql = String.format("update t_students set sname = '%s' where sid = %d","小强",17);
         System.out.println(sql);
         int i = st.executeUpdate(sql);
         if(i >0){
            System.out.printf("修改数据:%d条%n",i);
         }else {
            System.out.printf("修改数据:%d条%n",i);
         }
         query();
      }catch (Exception e){
         e.printStackTrace();
      }
   }

执行结果:

 全部代码:

package cn.mingzi;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * <p>Project: jdbcdemo - StatementDemo</p>
 * <p>Powered by MingZi On 2023-08-11 20:25:20</p>
 * <p>描述:<p>
 *
 * @author MingZi [MingZi@1541521841@qq.com]
 * @version 1.0
 * @since 17
 */
public class StatementDemo {
   @Test
   void query(){
      try{
         Statement st = conn.createStatement();
         ResultSet rs = st.executeQuery("select * from t_students");
         //ResultSet rs = st.executeQuery("select * from t_students order by sid desc limit 3");
         while(rs.next()){
            System.out.printf("sid:%d,sname:%s%n",rs.getInt(1),rs.getString("sname"));
         }
      }catch (Exception e){
         e.printStackTrace();
      }
   }

   @Test
   void update(){
      try{
         Statement st = conn.createStatement();
         String sql = String.format("update t_students set sname = '%s' where sid = %d","小强",17);
         System.out.println(sql);
         int i = st.executeUpdate(sql);
         if(i >0){
            System.out.printf("修改数据:%d条%n",i);
         }else {
            System.out.printf("修改数据:%d条%n",i);
         }
         query();
      }catch (Exception e){
         e.printStackTrace();
      }
   }
   
   @Test
   void del(){
      //使用st 语句删除
      try{
         Statement st = conn.createStatement();
         String sql = String.format("delete from t_students where sid = %d",16);
         int ok = st.executeUpdate(sql);
         if(ok>0){
            System.out.printf("删除成功:%d条%n",ok);
         }else {
            System.out.printf("\33[31m删除成功:%d条\33[0m%n",ok);

         }
         System.out.println();
         query();
      }catch (Exception e){
         e.printStackTrace();
      }
   }

   @Test
        void add(){
      //使用statmement语句 insert into 语句
      try{
         Statement simt = conn.createStatement();
         String sql =String.format("insert into t_students values(null,'%s','%s','%d','%d','%s','%s')", "红豆","男",20,90,"2023-8-11","软件");
         System.out.println(sql);
         int rows = simt.executeUpdate(sql);
         if(rows >0){
            System.out.printf("数据库插入成功: %d条%n",rows);
         }
         //ddl create database drop table
         //stmt.execute(String sql);   执行语句,返回 true false

         //insert delete update
         //int i = stmt.executeUpdate(String sql); 返回影响的行

         //select show query 查询
         //ResultSet rs = simt.executeQuery(String sql); 返回ResultSet
         query();
      }catch (Exception e){
         e.printStackTrace();
      }
   }

  Connection conn;
  String url ="jdbc:mysql:/dbok";
  String user = "root";
  String password = "";
  @BeforeEach
   void init() {
     try {
        conn = DriverManager.getConnection(url, user, password);
     } catch (Exception e) {
        e.printStackTrace();
     }
  }

   @AfterEach
     void close(){
        try{
           conn.close();
        }catch (Exception e){
           e.printStackTrace();
     }
  }
}

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

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

相关文章

利用Torchmetrics库快速进行Torch的评价指标计算(推荐)

目录 1、安装 2、基本流程介绍 3、MetricCollection 4、自定义指标 5、我们可以调用多个指标计算不同的任务 6、可以是标签,也可以是one_hot编码 7、常用分类指标计算 8、异常报错 1、安装 官网地址:Welcome to TorchMetrics — PyTorch-Metrics 1.0.1 documenta…

JUL 日志 - 最简单易用的Java日志框架

在正式的生产环境下是不能使用 System.out 进行日志记录的 因为 System.out 不能提供时间、线程、执行过程 等信息&#xff0c;如果要手动打印输出则会非常麻烦 而日志就帮我们把这些事给干了 接下来我们学一个最简单的日志框架 JUL JUL全称Java util Logging是java原生的日志框…

用户数据报协议UDP

UDP的格式 载荷存放的是:应用层完整的UDP数据报 报头结构: 源端口号:发出的信息的来源端口目的端口号:信息要到达的目的端口UDP长度:2个字节(16位),即UDP总长度为:2^16bit 2^10bit * 2^6bit 1KB * 64 64KB.所以一个UDP的最大长度为64KBUDP校验和:网络的传输并非稳定传输,…

资源限制类题目解法,看这一篇就够了!

算法拾遗三十七资源限制类题目 资源限制技巧汇总32位无符号整数的范围是0~4,294,967,295&#xff0c;现在有一个正好包含40亿个无符号整数的文件&#xff0c;可以使用最多1GB的内存&#xff0c;怎么找到出现次数最多的数32位无符号整数的范围是0~4294967295&#xff0c;现在又一…

【VBA入门】WorkBook 对象 Name操作 宏录制筛选删除代码

VBA 入门 问题记录1 了解Excel工作簿、表格关系1 默认新建WorkBook2 新建WorkBook并命名工作表添加数据3新建带有指定数量工作表的工作簿 ActiveWorkbook.Names用法(1) 创建名称 (全局名称和局部名称&#xff09; 宏录制验证删除可行性大招&#xff01;&#xff01;&#xff01…

Linux基础与应用开发系列九:各类系统函数与标准IO函数

open_close函数 OPEN函数 头文件&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> 函数原型&#xff1a; 当文件存在时 int open(const char* pathname,int flags) 当文件不存在时 int open (const char* pathname,int f…

(黑客)自学误区

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员&#xff08;以编程为基础的学习&#xff09;再开始学习 行为&#xff1a;从编程开始掌握&#xff0c;前端后端、通信协议、什么都学。 缺点&#xff1a;花费时间太长、实际向安全过渡后可用到的关键知识并不多…

【2023最新美团笔试题目分析】“求最多出现数字及次数“、坦克大战在线对战游戏(问题描述 + 示例代码 + 时间复杂度分析)

弃幼少嬉戏堕慢之心,而衎衎于进德修业之志。 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿 🌟[3] 2022年度博客之星人工智能领域TOP4🌟 🏅[4] 阿里云社区特邀专家博主

光致发光二极管光源——荧光效率检测系统

发光二极管&#xff08;LED&#xff09;光源已经逐步地取代传统光源&#xff0c;并在生产和生活中得以广泛应用。荧光粉在LED照明设备中起到了至关重要的作用&#xff0c;其功能为将转换芯片所产生的紫外或者蓝光&#xff0c;发射出目标颜色的光。近年来&#xff0c;人们为了提…

计算文本相似度

目录 Python中的difflib模块模块用法报告涉及的符号实现文本对比普通文本对比文本对比生成HTML报告 余弦相似度sklearn安装使用sklearn的余弦相似度词袋模型 Jaccard相似度编辑距离&#xff08;Levenshtein距离&#xff09;TF-IDFWord2VecDoc2VecBERT结论 Python中的difflib模块…

使用阿里云服务器搭建Discuz论坛网站教程基于CentOS系统

阿里云百科分享使用阿里云服务器建站教程&#xff0c;本文是搭建Discuz论坛&#xff0c;Discuz!是一款通用的社区论坛软件系统&#xff0c;它采用PHP和MySQL组合的基础架构&#xff0c;为您提供高效的论坛解决方案。本文介绍如何在CentOS 7操作系统的ECS实例上搭建Discuz! X3.4…

如何使用 ESP-01S 模块

如何使用 ESP-01S 模块 原始PDF文档 参考&#xff1a; 将 ESP-01 用作 WiFi shield的更好方法 (e-tinkers.com) How do I use ESP8266 ESP-01S WiFi Module with ESP-01S Adapter - Using Arduino / Programming Questions - Arduino Forum ESP-01S WiFi 模块 – 配置布线 -…

自动化测试是什么?自动化测试学什么?自动化测试面试题及答案?--看完后吊打面试官

一、前言 最近有童鞋和我抱怨&#xff0c;说网上很难搜到那些全面又合适的自动化测试面试题&#xff0c;这里根据我个人的经验以及收集整理的&#xff1a; 你没看错&#xff0c;不慌&#xff0c;慢慢来。 先从什么是自动化测试开始说起哈&#xff01; 二、什么是自动化测试&…

点淘的MCN机构申请详细入驻指南!

消费趋势的变化&#xff0c;来自消费人群的变化。 后疫情时代&#xff0c;经济复苏的反弹力度不足&#xff0c;人们开始怀疑我们正从前几年的消费升级&#xff0c;跌入消费降级的时代&#xff0c;但这并不能准确概括消费市场的变化。 仔细翻看各大奢侈品集团的财报&#xff0…

Android高通8.1 Selinux问题

1、最近客户提了一个需求&#xff0c;说要在user版本上面切分辨率&#xff0c;默认屏幕分辨率是2.5 k 执行adb shell指令之后变成 4k 然后adb shell wm size可以查看 2、一开始我能想到就是在文件节点添加权限&#xff0c;这里不管是mtk还是qcom&#xff08;高通平台&#xff…

MySQL中用什么数据类型存IP地址

提到IP地址(IPv4)&#xff0c;我们脑子里肯定立马浮现类似于192.168.0.1、127.0.0.1这种常见的IP地址&#xff0c;然后结合这个问题“MySQL中用什么数据类型存IP地址&#xff1f;”&#xff0c;于是乎脱口而出用char字符串类型存储。 然后再仔细想想发现&#xff0c;这个IP地址…

揭秘程序员和技师的7大共同点,最后一点绷不住了

大家好&#xff0c;这里是程序员晚枫&#xff0c;周末朋友出去放松回来&#xff0c;给我分析了一下程序员和技师的7个相同点&#xff0c;尤其是最后一点让我彻底绷不住了&#xff01; 我也分享给大家。 1、都有工号。98号技师&#xff0c;380号技师大家都很熟悉了&#xff0c…

阿里云服务器手动搭建FTP教程(Windows操作系统)

阿里云百科介绍使用阿里云服务器搭建FTP教程&#xff0c;云服务器为Windows操作系统&#xff0c;当需要远程连接Windows实例进行文件传输时&#xff0c;可以通过搭建FTP站点实现。本文将介绍如何在Windows实例中搭建FTP站点。 目录 准备工作 步骤一&#xff1a;添加IIS以及F…

ssm亚盛汽车配件销售业绩管理统源码和论文PPT

ssm亚盛汽车配件销售业绩管理统源码和论文PPT007 开发工具&#xff1a;idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具&#xff1a;navcat,小海豚等 开发技术&#xff1a;java ssm tomcat8.5 研究的意义 汽车配件销售类企业近年来得到长足发展,在市场份额不断扩大同时…

震惊!有人使用C语言实现三子棋游戏~

大家好&#xff0c;欢迎观看Mr.kanglong的CSDN博客&#xff0c;今天和大家讨论的是如何使用C语言来实现三子棋游戏。相信大家儿时或多或少玩过三子棋游戏&#xff0c;那么怎么用C语言实现这样一个游戏呢&#xff1f;且听亢龙娓娓道来~ 目录 三子棋介绍 游戏效果 实现代码 gam…