java数据库操作-cnblog

news2024/12/27 14:35:58

创建lib目录,填入jar包

选择

image-20241013165606569

libraries添加lib目录

image-20241013165630312

package nb;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBCtest {
    private static final String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8";
//    private static final String url = "jdbc:mysql://localhost:3306/testweb?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
    private static final String username = "root";
    private static final String password = "";
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection connection = DriverManager.getConnection(url,username,password);
            if (connection != null){
                System.out.println("数据库链接成功");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

image-20241013173426532

mysql -h localhost -u root -p

1 实现对数据库的取值

package nb;

import java.sql.*;
import java.util.Date;
import java.util.concurrent.locks.StampedLock;

public class JDBCtest {
    private static final String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8";
    private static final String username = "root";
    private static final String password = "";

    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection connection = DriverManager.getConnection(url, username, password);
            if (connection != null) {
                System.out.println("数据库链接成功");
            }

            String sql = "SELECT id,number,name,gender,createDt FROM student";
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()){
                int id = resultSet.getInt("id");
                System.out.println("id:"+id);
                int number = resultSet.getInt("number");
                System.out.println("number:"+number);
                String name = resultSet.getString("name");
                System.out.println("name:"+name);
                String gender = resultSet.getString("gender");
                System.out.println("gender:"+gender);
                Date createDt = resultSet.getDate("createDt");
                System.out.println("createDt:"+createDt);

            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

image-20241013181257085

2 注意在结尾关闭数据库

package nb;

import java.sql.*;
import java.util.Date;
import java.util.concurrent.locks.StampedLock;

public class JDBCtest {
    private static final String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8";
    private static final String username = "root";
    private static final String password = "";

    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection connection = DriverManager.getConnection(url, username, password);
            if (connection != null) {
                System.out.println("数据库链接成功");
            }

            String sql = "SELECT id,number,name,gender,createDt FROM student";
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()){
                int id = resultSet.getInt("id");
                System.out.println("id:"+id);
                int number = resultSet.getInt("number");
                System.out.println("number:"+number);
                String name = resultSet.getString("name");
                System.out.println("name:"+name);
                String gender = resultSet.getString("gender");
                System.out.println("gender:"+gender);
                Date createDt = resultSet.getDate("createDt");
                System.out.println("createDt:"+createDt);

            }
            resultSet.close();
            statement.close();
            connection.close();
            System.out.println("关闭数据库完成");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

image-20241013181450093

3 对数据库进行模糊查询

package nb;

import java.sql.*;
import java.util.Date;
import java.util.concurrent.locks.StampedLock;

public class JDBCtest {
    private static final String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8";
    private static final String username = "root";
    private static final String password = "";

    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection connection = DriverManager.getConnection(url, username, password);
            if (connection != null) {
                System.out.println("数据库链接成功");
            }

            String sql = "SELECT * FROM student where name like '张%'";
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()){
                int id = resultSet.getInt("id");
                System.out.println("id:"+id);
                int number = resultSet.getInt("number");
                System.out.println("number:"+number);
                String name = resultSet.getString("name");
                System.out.println("name:"+name);
                String gender = resultSet.getString("gender");
                System.out.println("gender:"+gender);
                Date createDt = resultSet.getDate("createDt");
                System.out.println("createDt:"+createDt);

            }
            resultSet.close();
            statement.close();
            connection.close();
            System.out.println("关闭数据库完成");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

查询结果只有一个,关键变换位置在

String sql = “SELECT * FROM student where name like ‘张%’”;

数据库内部一共储存了两个值

image-20241013182117975

image-20241013182126539

4 实现对数据库的增删改查

package nb;

import java.sql.*;
import java.util.Date;
import java.util.concurrent.locks.StampedLock;

public class JDBCtest {
    private static final String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8";
    private static final String username = "root";
    private static final String password = "";
    Connection connection;
    public void init_Connection(){//初始化链接数据库
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
             connection = DriverManager.getConnection(url, username, password);
            if (connection != null) {
                System.out.println("数据库链接成功");
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void closeConnection(){ //关闭数据库
        if (connection != null){
            try {
                connection.close();
                System.out.println("数据库成功关闭");
            }catch (SQLException e){
                e.printStackTrace();
            }
        }
    }

    public void showAllData(){
        try {
            String sql = "SELECT * FROM student";
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()){
                int id = resultSet.getInt("id");
                System.out.println("id:"+id);
                int number = resultSet.getInt("number");
                System.out.println("number:"+number);
                String name = resultSet.getString("name");
                System.out.println("name:"+name);
                String gender = resultSet.getString("gender");
                System.out.println("gender:"+gender);
            }
        }catch(SQLException e){
                e.printStackTrace();
            }
    }

    public void add(int id,int number,String username,String gender){
        try {
            String sql = "insert into student values(?,?,?,?)";
            PreparedStatement statement = connection.prepareStatement(sql);
            statement.setInt(1,id);
            statement.setInt(2,number);
            statement.setString(3,username);
            statement.setString(4,gender);
            statement.executeUpdate();
            System.out.println("添加新同学成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void delete(int id){ //删除指定id的学生
        try {
            Statement statement = connection.createStatement();
            statement.executeUpdate("delete from student where id="+id);
            System.out.println("删除某成员成功");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void update(int id,String new_name){
        String sql = "update student set name = ? where id = ?";
        try {
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setInt(2,id);
            preparedStatement.setString(1,new_name);
            preparedStatement.executeUpdate();


        } catch (SQLException e) {
            e.printStackTrace();
        }


    }


    public static void main(String[] args) {
        JDBCtest jdbCtest = new JDBCtest();
        jdbCtest.init_Connection();
        jdbCtest.add(4,12233,"王二","男");
        jdbCtest.delete(4);
        jdbCtest.update(3,"呃呃");
        jdbCtest.showAllData();
        jdbCtest.closeConnection();
    }
}

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

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

相关文章

ubuntu下打开摄像头

ubuntu下打开摄像头 在Ubuntu下,你可以使用cheese,这是一个开源的摄像头应用程序。如果你还没有安装它,可以通过以下命令安装: sudo apt-get updatesudo apt-get install cheese 安装完成后,你可以通过命令行启动它: cheese 或者,你也可以使用ffmpeg来打开摄像头并进…

navicate可视化数据库操作-cnblog

1 连接数据库 点击链接,自定义名称,输入root密码 2 准备按照图例创建数据库demo 3 新建数据库

使用 Visual Studio Installer Projects 打包 C# WinForms 程序的教程

前言 在开发完成一个 C# WinForms 程序后,打包成安装程序是发布和分发软件的重要步骤之一。通过使用 Visual Studio Installer Projects, 可以轻松创建一个 .exe 或 .msi 格式的安装包供用户安装。本文将详细介绍如何使用 Visual Studio Installer Proj…

springcloud之基于github webhook动态刷新服务配置

前言 在实际开发中经常会有一个叫做配置中心的服务,这个服务经过变更参数来动态刷新线上业务数据行为配置。比如;行为开关、活动数据、黑白名单、本地/预发/线上环境切换等等,这些配置信息往往需要在我们不重启系统的时候就可以被更新执行。那…

2.1 使用点对点信道的数据链路层

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言1 通信信道类型2 数据链路3 帧4 透明传输5 差错检测 前言 在计算机网络通信中,数据链路层起着关键作用。它为直接相连的网络设备之间提供可靠的数据传输服务。…

Mysql高级篇(下)——数据库设计范式

Mysql高级篇(下)——数据库设计范式 一、键和相关属性概念二、关系型数据库中常见的六种设计范式1. 第一范式(1NF)- 消除重复列,保证每列都是原子值2. 第二范式(2NF)- 消除部分依赖3. 第三范式&…

数据结构 ——— C语言实现带哨兵位双向循环链表

目录 前言 无哨兵位单向不循环链表的缺陷 带哨兵位双向循环链表的概念 带哨兵位双向循环链表的结构 带哨兵位双向循环链表逻辑结构示意图​编辑 实现带哨兵位双向循环链表的准备工作 实现带哨兵位双向循环链表 1. 创建新节点 2. 初始化哨兵位 3. 定义哨兵位指针 4. …

【最新华为OD机试E卷-支持在线评测】考勤信息(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

SCI论文快速排版:word模板一键复制样式和格式【重制版】

关注B站可以观看更多实战教学视频:hallo128的个人空间SCI论文快速排版:word模板一键复制样式和格式:视频操作视频重置版2【推荐】 SCI论文快速排版:word模板一键复制样式和格式【重制版】 模板与普通文档的区别 为了让读者更好地…

软考系统分析师知识点十:软件工程

前言 今年报考了11月份的软考高级:系统分析师。 考试时间为:11月9日。 倒计时:27天。 目标:优先应试,其次学习,再次实践。 复习计划第一阶段:扫平基础知识点,仅抽取有用信息&am…

苹果AI科学家研究证明基于LLM的模型存在缺陷 因为它们无法推理

苹果公司人工智能科学家的一篇新论文发现,基于大型语言模型的引擎(如 Meta 和 OpenAI 的引擎)仍然缺乏基本的推理能力。该小组提出了一个新的基准–GSM-Symbolic,以帮助其他人衡量各种大型语言模型(LLM)的推…

【C++贪心 DFS】2673. 使二叉树所有路径值相等的最小代价|1917

本文涉及知识点 C贪心 反证法 决策包容性 CDFS LeetCode2673. 使二叉树所有路径值相等的最小代价 给你一个整数 n 表示一棵 满二叉树 里面节点的数目,节点编号从 1 到 n 。根节点编号为 1 ,树中每个非叶子节点 i 都有两个孩子,分别是左孩子…

QD1-P7 HTML 容器和布局标签(div、span)

本节学习&#xff1a;div 和 span 标签。 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p7 ‍ 一、div 标签 用途 ​<div>​ 标签在 HTML 中是一个通用容器&#xff0c;用于将 HTML 文档中的内容分组并在文档中划分区域。<div>​ ​元素本身不具有特定的含…

深入探索Spring Cloud Gateway:微服务网关的最佳实践

优质博文&#xff1a;IT-BLOG-CN Spring Cloud Gateway作为Spring Cloud框架的第二代网关&#xff0c;在功能上要比Zuul更加的强大&#xff0c;性能也更好。随着Spring Cloud的版本迭代&#xff0c;Spring Cloud官方有打算弃用Zuul的意思。在笔者调用了Spring Cloud Gateway的…

前端方案:根据链接生成二维码

前言&#xff1a; 虽然在很多时候&#xff0c;生成二维码的操作都是由后端进行操作。但是在某些特定的场景里&#xff0c;难免会需要前端来完成链接生成二维码的操作&#xff0c;在这里我们提供一个插件来完成&#xff0c;这个插件就是qrcode。 官方地址 安装&#xff1a; …

Enemy Golem 卡通石头人怪物模型带骨骼动画动作

包含9个动画。 信息: -模型有9.450个涵洞。 -矿脉x 4 -纹理:彩色、普通、蒙版、AO、发射型(2048x2048尺寸) 下载:​​Unity资源商店链接资源下载链接 效果图:

【多模态论文阅读系列二】— MiniCPM-V

校招/实习简历修改、模拟面试欢迎私信《MiniCPM-V: A GPT-4V Level MLLM on Your Phone》 在本节中&#xff0c;我们介绍了MiniCPM-V的模型架构&#xff0c;概述了其总体结构和自适应高分辨率视觉编码方法。MiniCPM-V系列的设计理念是在性能和效率之间实现良好的平衡&#xff0…

默语是谁?

默语是谁&#xff1f; 大家好&#xff0c;我是 默语&#xff0c;别名默语博主&#xff0c;擅长的技术领域包括Java、运维和人工智能。我的技术背景扎实&#xff0c;涵盖了从后端开发到前端框架的各个方面&#xff0c;特别是在Java 性能优化、多线程编程、算法优化等领域有深厚…

一文了解 Linux 系统的文件权限管理

文章目录 引入Linux文件权限模型查看文件权限权限信息解析修改文件权限符号模式八进制数字模式 引入 在Linux操作系统中&#xff0c;我们想查看我们对文件拥有哪些权限时&#xff0c;可以在终端键入ls -l或ll命令&#xff0c;终端会输出当前路径下的文件信息&#xff0c;如文件…

vue3集成electron

安装说明 vue集成electron时&#xff0c;会用到两个依赖。分别是electron和electron-builder&#xff0c;前者是开发环境下使用&#xff0c;后者是打包部署时使用。安装时&#xff0c;可在线安装也可离线安装。所谓离线安装就是自己下载好用到的包&#xff0c;然后放到指定目录…