java实现mysql数据库增删改查

2023-11-05

 

本文将介绍java实现数据库增删改查的操作方法定义的代码,包括statment和preparestatment两种模式,两种的区别可以参考别的文章,按需选用。

例:getdata是statment的查询的方法,pgetdata是preparestatment的查询的方法

需要自己修改用户名、密码、数据库url

添加方法需要每个表单独定义方法(要改哪里一看就会)

​
​
package com.example.helloworld.Utils;

import java.sql.*;

public class JDBCUtils {
    public static Connection getConn(){
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        Connection conn = null;
        //mysql用户名
        String userName = "root";
        //mysql密码
        String password = "password";
        //数据库URL
        String url = "jdbc:mysql://localhost:3306/<数据库名>?useSSL=false";

        try {
            conn = DriverManager.getConnection(url, userName, password);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }


//查询
    public static String GetData(String table,String column,String name,String col){
        Connection conn = getConn();
        String a = null;

        Statement stmt;
        try {
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT * FROM "+table + " WHERE " + column + "='" + name+"'";
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                a=rs.getString(col);
            }
            rs.close();
            stmt.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return a;
    }


    public static String pGetData(String table, String column, String name, String col) {
        Connection conn = getConn();
        String a = null;
        PreparedStatement ps = null;
        try {
            //创建prepareStatement对象
            String sql = "SELECT * FROM "+table+" WHERE "+column+" = ?";
            ps = conn.prepareStatement(sql);
            ps.setString(1, name);
            ps.execute();//执行
            System.out.println(ps.execute());//执行表输出返回的结果,结果为false,因为没有返回的结果集
            //处理结果集
            ResultSet rs=ps.executeQuery();
            while(rs.next()){
                a=rs.getString(col);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭资源
            try {
                if (ps != null) ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return a;
    }


//更新
    public static void UpdateData(String table, String column, String name, String col , String newdata) {
        Connection conn = getConn();
        Statement stmt;
        try {
            stmt = conn.createStatement();
            String sql;
            sql = "UPDATE "+ table + " SET " + col + " = '"+newdata + "' WHERE " + column + " = '"+name+"'";
            stmt.executeUpdate(sql);
            stmt.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void pUpdateData(String table, String column, String name, String col , String newdata) {
        Connection conn = getConn();
        PreparedStatement ps = null;
        try {
            //创建prepareStatement对象
            String sql = "UPDATE "+table+" SET "+col+" = ? WHERE "+column+" = ?";
            ps = conn.prepareStatement(sql);
            //执行sql语句
            //ps.setString(1, table);
            //ps.setString(2, col);
            ps.setString(1, newdata);
            //ps.setString(4, column);
            ps.setString(2, name);
            //java.util.Date utilDate = new java.util.Date();//进行类型转换,由util类型的date转化为sql类型的
            ps.execute();//执行
            System.out.println(ps.execute());//执行表输出返回的结果,结果为false,因为没有返回的结果集
            //处理结果集
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭资源
            try {
                if (ps != null) ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

//删除
    public static void DeleteData(String table,String col,String name){
        Connection conn = getConn();
        Statement stmt;
        try {
            stmt = conn.createStatement();
            String sql;
            sql = "DELETE FROM "+table + " WHERE " + col + "='" + name+"'";
            stmt.executeUpdate(sql);
            stmt.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }


    public static void pDeleteData(String table,String col,String name){
        Connection conn = getConn();
        PreparedStatement ps = null;
        try {
            //创建prepareStatement对象
            String sql = "DELETE FROM "+table + " WHERE " + col + "= ?";
            ps = conn.prepareStatement(sql);
            //执行sql语句
            ps.setString(1, name);
            //java.util.Date utilDate = new java.util.Date();//进行类型转换,由util类型的date转化为sql类型的
            ps.execute();//执行
            System.out.println(ps.execute());//执行表输出返回的结果,结果为false,因为没有返回的结果集
            //处理结果集
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭资源
            try {
                if (ps != null) ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

//添加
    public static void AddDatastu(String name1,String password1,String qqaccount1){
        Connection conn = getConn();
        Statement stmt;
        try {
            stmt = conn.createStatement();
            String sql;
            sql = "insert into stu(stuname,password,qq) values ('"+name1+"','"+password1+"','"+qqaccount1+"');";
            stmt.executeUpdate(sql);
            stmt.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void pAddDatastu(String name1,String password1,String qqaccount1){
        Connection conn = getConn();
        PreparedStatement ps = null;
        try {
            //创建prepareStatement对象
            String sql = "insert into stu(stuname,password,qq) values (?,?,?)";
            ps = conn.prepareStatement(sql);
            //执行sql语句
            ps.setString(1, name1);
            ps.setString(2,password1);
            ps.setString(3,qqaccount1);
            //java.util.Date utilDate = new java.util.Date();//进行类型转换,由util类型的date转化为sql类型的
            //ps.execute();
            // 执行
            System.out.println(ps.execute());//执行表输出返回的结果,结果为false,因为没有返回的结果集
            //处理结果集
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭资源
            try {
                if (ps != null) ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

​

​

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java实现mysql数据库增删改查 的相关文章

  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • MySQL 追加字符串

    How can I append a string to the end of an existing table value Let s say I have the table below And let s say that Mari
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • 通过触发器应用表的列权限

    现在 我有一个名为 Members 的表 其中包含内容 分为联系人数据 银行数据 现在 管理员应该能够创建 更新 删除用户 这些用户保存在另一个表中 该表只能访问管理员 用户应该获得自己的 mysql 用户帐户 管理员还应该能够设置权限 例
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp

随机推荐

  • 如何使用BBP公式直接计算π的第n位

    使用BBP公式可以直接求得十六进制 的第n位而不需要计算前n位的数 讲道理 我认为是可以计算十进制的第n位的 毕竟其本身就能直接计算出十进制的 但我没试 其优点在于可以进行分布式计算 即将一个耗时的运算拆分成若干个运算单元在不同的机器上进行
  • 芯片可靠性与商规、工规、车规

    在芯片的国产化浪潮下 国产芯片的出货量和替代率近年来迅速飙升 按出货量比率看 消费电子领域 电源管理芯片和射频前端芯片国产替代率已超过70 工控通信领域 电源管理和信号链芯片国产替代率也超过20 汽车电子领域 电源管理和功率器件的国产替代率
  • 【OpenAI】私有框架代码生成实践

    作者 京东零售 牛晓光 根据现有调研和实践 由OpenAI提供的ChatGPT GPT 4模型和CodeX模型能够很好的理解和生成业界大多数编程语言的逻辑和代码 其中尤其擅长Python JavaScript TypeScript Ruby
  • Python 进程原理 —— 《餐厅里的故事》

    在说明进程之前引入几个概念 本文向你诠释 并行 并发 同步 异步 阻塞 非阻塞 进程等概念 如果不理解这几个概念 在学习进程过程中时刻都在给自己预设障碍 所以我痛定思痛 先了解进程工作原理 概念1 单道程序与多道程序 不在赘述单道程序的工作
  • AHP权重计算方法案例

    AHP权重计算方法案例 1 案例背景 公司要对网站用户行为进行追踪 以优化推荐系统算法 需要对已有的5项行为指标 为便于理解 此处展示5项 分配对应权重 需要我们数据部门给出权重建议 当然不能拍脑门 我以AHP层次分析法为理论基础设计了一套
  • 花30分钟,我用ChatGPT写了一篇2000字文章(内附实操过程)

    有了ChatGPT之后 于我来说 有两个十分明显的变化 1 人变的更懒 因为生活 工作中遇到大大小小的事情 都可以直接找ChatGPT来寻求答案 2 工作产出量更大 之前花一天 甚至更久才能写一篇原创内容 现在有了主题 框架之后 ChatG
  • 求生之路2在Win10下鼠标看不见要怎么解决?

    求生之路2是很多玩家都非常喜欢的一款恐怖生存类游戏 但是在升级win10系统后玩求生之路会遇到一些问题 如鼠标看不见 这就让操作变的很麻烦 其实这是由于系统鼠标设置问题到导致的 跟着小编操作可解决这个问题 修复步骤如下 1 按下WIN X
  • #If...Then...#Else Directives

    If Then Else Directives Conditionally compiles selected blocks of Visual Basic code If expression Then statements ElseIf
  • 算法:单调栈

    栈 先进后出 最好是找一些简单的数据用纸和笔模拟一下具体过程 清清楚楚地表现出来 理解一个比较难懂的程序最快的方式是对照着一个程序一步一步将过程模拟出来 那么就很容易理解整个程序的意思了 不要光看程序代码 不动笔 这样可能会耗很多时间并且最
  • FasterTransformer 安装

    第一 安装TensorRT FasterTransformer 支持cuda10 0 所以TensorRT也下cuda10 0对应版本 1 下载TensorRT https developer nvidia com nvidia tenso
  • Android中的Wifi框架知识点

    一 Android wifi框架图 Android WIFI系统引入了wpa supplicant 它的整个WIFI系统以wpa supplicant为核心来定义上层接口和下层驱动接口 Android WIFI主要分为六大层 分别是WiFi
  • TCP套接字网络编程实例(二)

    TCP套接字网络编程实例 二 采用多线程实现客户端和服务器的聊天功能 OK 上代码 1 客户端部分 文件 tcp client c 内容 利用TCP实现客户端和服务器的实时聊天 注 服务器的端口号及IP 客户端的端口号及IP的输入通过mai
  • angular2+修改环境变量,不用重新build部署

    转载文章链接 How to use environment variables to configure your Angular application without a rebuild 整体思路 在assets目录下添加js文件 获取
  • warning negative label/yolo标签出现负值?

    问题如上图所示 出现场景 图像增强后 xml文件转txt文件 解决方法1 无脑粗暴 一秒见效 直接把负值转成正值 不影响标注与训练结果 代码如下 import os def process files in folder folder pa
  • BLE低功耗的设置参数

    广播间隔 连接间隔 扫描间隔 扫描窗口 广播间隔 两个相邻广播事件之间的时间称为广播间隔 可以选择 20ms 10 28s 不等的间隔 通常 一个广播中的设备会每一秒广播一次 必须是 0 625ms 的整数倍 由于设备间的时钟会不同程度的漂
  • f12弹出debug_360浏览器网站按f12弹出新窗口解决办法

    为何有些网站在360浏览器中按f12弹出新窗口 而不是在当前页面右侧出现调试部分呢 对于网站开发人员来说 我们需要得到的是在当前页面出现调试结果 不管是本地测试文件还是已经上线的网站 这里成都seo小冬 总结了下面三点 一起来试试吧 1 切
  • Nali:一个离线查询 IP 地理信息和 CDN 提供商的终端利器

    什么是 Nali dig nslookup traceroute 等都是非常实用的网络调试工具 Nali 是一个可以自动解析这些工具 stdout 中的 IP 并附上所属 ISP 和地理信息 对这些已是瑞士军刀般的工具可谓如虎添翼 Nali
  • 力扣(LeetCode)每日一题 LCP 50. 宝石补给

    简单题 不用解释直接看代码 class Solution public int giveGem int gem int operations for int i 0 i
  • Qt笔记(六十)之Qt实现无边框圆角窗口

    一 前言 设置无边框窗口之后 就会显示直角的风格 有用户反馈说 看着太锐了 让我给换成圆角 看着舒服一点 楼主一开始想用Qss实现 发现实在不行 后边想着 估计只能用绘图事件来操作了 二 实现过程 1 实现窗口无边框效果 setWindow
  • java实现mysql数据库增删改查

    本文将介绍java实现数据库增删改查的操作方法定义的代码 包括statment和preparestatment两种模式 两种的区别可以参考别的文章 按需选用 例 getdata是statment的查询的方法 pgetdata是prepare