java数据库操作-cnblog

创建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.mfbz.cn/a/890597.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SAP学习笔记 - 豆知识12 - 自动批量更新会计期间

网上买的那种SAP学习虚拟机,一般都是古老的会计期间。 要想更新到现在的日期,需要MMRV/MMPV挨月更新,感叹SAP挺会折磨人。 之前也做过多次探索,基本都没太成功。 SAP MM学习笔记 - 豆知识10 - OMSY 初期化会计期间,…

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

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

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

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

网络资源模板--Android Studio 实现简易记事本App

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--基于Android studio 实现的简易记事本App 二、项目测试环境 三、项目详情 首页 创建一个空的笔记本列表 mNotebookList。使用该列表和指定的布局资源 item_notebook 创建…

苹果最新论文:LLM只是复杂的模式匹配 而不是真正的逻辑推理

大语言模型真的可以推理吗?LLM 都是“参数匹配大师”?苹果研究员质疑 LLM 推理能力,称其“不堪一击”!苹果的研究员 Mehrdad Farajtabar 等人最近发表了一篇论文,对大型语言模型 (LLM) 的推理能…

2.实现第一个three.js程序

实现第一个three.js程序 1.目标效果 注意一个版本问题:three.js版本并不稳定,几乎每个月都会更新一个小版本,尽可能使用固定版本进行开发,事实上我们入门的话,只掌握其中一个版本即可,如果使用新版本&…

文件与fd

访问文件前,为什么必须要打开文件?/ 打开文件的实质 访问文件前,都必须先打开它, 如fopen 访问文件时,是进程在访问 所以文件必须加载到内存中 我们要访问文件时,一定要通过内存访问 文件没有被打开时&am…

多线程(三):线程等待获取线程引用线程休眠线程状态

目录 1、等待一个线程:join 1.1 join() 1.2 join(long millis)——"超时时间" 1.3 join(long millis,int nanos) 2、获取当前线程的引用:currentThread 3、休眠当前进程:sleep 3.1 实际休眠时间 3.2 sleep的特殊…

SQLI LABS | SQLI LABS 靶场初识

关注这个靶场的其它相关笔记:SQLI LABS —— 靶场笔记合集-CSDN博客 0x01:SQLI LABS 靶场简介 SQLi-Labs 靶场是一个专门用于学习和测试 SQL 注入漏洞的开源靶场,该靶场提供了多个具有不同漏洞类型和难度级别的 Web 应用程序的环境。这些应用…

C++ | Leetcode C++题解之第477题汉明距离总和

题目&#xff1a; 题解&#xff1a; class Solution { public:int totalHammingDistance(vector<int> &nums) {int ans 0, n nums.size();for (int i 0; i < 30; i) {int c 0;for (int val : nums) {c (val >> i) & 1;}ans c * (n - c);}return …

matlab 相关

1、xcorr 本质上是两个函数做内积运算 相关算法有两种&#xff1a; 在Matlab上既可以 1.用自带的xcorr函数计算互相关&#xff0c;2.通过在频域上乘以共轭复频谱来计算互相关&#xff1b; 网友验证程序 clc;clear;close all; % s1,s2为样例数据 s1 [-0.00430297851562500;-…

[C++ 核心编程]笔记 4.1.2 struct和class的区别

4.1.2 struct和class的区别 在C中 struct和class唯一的区别就在于 默认的访问权限不同 区别: struct 默认权限为公共class 默认权限为私有 #include<iostream> using namespace std;class C1 {int m_A;//默认私有 }; struct C2 {int m_A;//默认共有 };int main() {//s…

【3dgs】Gaussian-SLAM发展关键历程梳理

【3dgs】Gaussian-SLAM 0. 写在前面1. 3D Splatting与SLAM流程2. Splatting SLAM&#xff1a;单目/RGB-D(2024年新作&#xff09;2.1 相机跟踪精度2.2 新视图渲染性能2.3 消融实验 3. Gaussian-SLAM&#xff08;Photo-SLAM&#xff09; Photo-SLAM技术原理详解 ORBSLAM3dGS&am…

超GPT3.5性能,无限长文本,超强RAG三件套,MiniCPM3-4B模型分享

MiniCPM3-4B是由面壁智能与清华大学自然语言处理实验室合作开发的一款高性能端侧AI模型&#xff0c;它是MiniCPM系列的第三代产品&#xff0c;具有4亿参数量。 MiniCPM3-4B模型在性能上超过了Phi-3.5-mini-Instruct和GPT-3.5-Turbo-0125&#xff0c;并且与多款70亿至90亿参数的…

CentOS快速配置网络Docker快速部署

CentOS快速配置网络&&Docker快速部署 CentOS裸机Docker部署1.联通外网2.配置CentOS镜像源3.安装Docker4.启动Docker5.CentOS7安装DockerCompose Bug合集ERROR [internal] load metadata for docker.io/library/java:8-alpineError: Could not find or load main class …

动力电池SOC估算方法

1. SOC介绍 电池的荷电状态SOC反映电池的剩余容量状况&#xff0c;即在一定的放电倍率下&#xff0c;当前电池的剩余容量与总容量的比值。 为了充分发挥电池性能和提高安全性&#xff0c;需要准确估算电池SOC。动力电池在使用过程中表现的高度非线性提高了SOC估算的难度&#…

(04)python-opencv图像处理——图像阈值、平滑图像、形态转换、图像梯度

目录 前言 一、图像阈值 1.1 简单的阈值法 1.2 自适应阈值 二、平滑图像 2.1 二维卷积(图像滤波) 2.2 图像模糊 2.2.1均值模糊 2.2.2高斯模糊 2.2.3 中值滤波 2.2.4 双边滤波 三、形态转换 1、腐蚀 2、膨胀 3、开运算 4、闭运算 四、图像梯度 Sobel 和 Scharr …

【Ubuntu】“Linux版PhotoShop”绘图软件的安装和汉化

【Ubuntu】“Linux版PhotoShop”绘图软件的安装和汉化 零、前言 最近换了Linux系统&#xff0c;但是写教程做PPT的时候还是得用到绘图软件&#xff0c;上网一查&#xff0c;总结对比之后发现Krita比较好用&#xff0c;故此讲解一下如何安装和汉化Krita。 壹、安装 安装很简…

探索 Python 装饰器的新境界:wrapt 库的神秘力量

文章目录 探索 Python 装饰器的新境界&#xff1a;wrapt 库的神秘力量背景&#xff1a;为何选择 wrapt&#xff1f;wrapt 是什么&#xff1f;如何安装 wrapt&#xff1f;简单的 wrapt 库函数使用方法创建简单装饰器保持元信息处理参数传递 场景应用&#xff1a;wrapt 的实际用例…

php 生成随机数

记录&#xff1a;随机数抽奖 要求&#xff1a;每次生成3个 1 - 10 之间可重复&#xff08;或不可重复&#xff09;的随机数&#xff0c;10次为一轮&#xff0c;每轮要求数字5出现6次、数字4出现3次、…。 提炼需求&#xff1a; 1&#xff0c;可设置最小数、最大数、每次抽奖生…