通过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();
     }
  }
}
相关推荐
2301_7679026427 分钟前
MySQL 入门
数据库·mysql
7ioik1 小时前
说一说MySQL数据库基本架构?
数据库·mysql·架构
@淡 定1 小时前
Redis持久化机制
数据库·redis·缓存
云老大TG:@yunlaoda3601 小时前
华为云国际站代理商DAS的跨境合规适配是如何保障数据合规的?
网络·数据库·华为云
TG:@yunlaoda360 云老大1 小时前
华为云国际站代理商HiLens的技术优势对跨境客户有哪些具体帮助?
服务器·数据库·华为云
+VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue健身房管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Leon-Ning Liu2 小时前
当SGA大于hugepage的时候,Oracle数据库是怎么使用hugepage的
数据库·oracle
马克学长2 小时前
SSM校园二手交易系统aqj3i(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb 开发
利剑 -~2 小时前
letcode数据库题联系
数据库
小程故事多_802 小时前
Agent Skills深度解析,让智能体从“会连接”到“会做事”的核心引擎
数据库·人工智能·aigc