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

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

查询所有学生姓名:

java 复制代码
 @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,软件)

java 复制代码
 @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的学生:

java 复制代码
 @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的学生姓名红豆更改为小强

java 复制代码
 @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();
      }
   }

执行结果:

全部代码:

java 复制代码
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();
     }
  }
}
相关推荐
ClouGence8 小时前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
飞将10 小时前
从零实现数据库(2)——HashIndex + IndexManager
数据库
Nturmoils1 天前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库
渣波1 天前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
倔强的石头_2 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
倔强的石头_5 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab6 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence6 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神6 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据7 天前
数据服务化时代:企业数据能力输出的核心路径
数据库