JDBC与MySql数据库

news2024/12/23 3:52:12

一、系统开发前的环境准备

1.下载Mysql

下载地址:https://dev.mysql.com/downloads/mysql/

文件解压缩到本地
在这里插入图片描述
在此路径下新增my.ini文件以及新建data文件夹

在这里插入图片描述
编辑my.ini文件
在这里插入图片描述
配置环境变量
在这里插入图片描述
在这里插入图片描述
注意是编辑系统变量的Path
在这里插入图片描述
以管理员身份运行cmd
在这里插入图片描述

输入命令:mysqld install
安装成功后输入:mysqld --initialize --user=root --console
注意:最后面的root@localhost后的文字为初始化的root 密码,一定要记住

启动MySQL服务
输入命令:net start mysql

登陆MySQL数据库
输入命令:mysql -u root -p,再按回车,输入密码
密码为上面root@localhost后初始化的密码

修改密码
输入命令:ALTER USER 'root'@'localhost' IDENTIFIED BY ‘新密码’;

2.下载Navicat

下载解压,得到32位和和64位navicat premium 15中文原程序和patch破解文件;64位是第二个
在这里插入图片描述
以64位为例,双击文件“navicat150_premium_cs_x64.exe”安装软件,依提示安装即可;
在这里插入图片描述
成功安装后,先不打开软件,将注册机文件“Navicat_Keygen_Patch_v5.6_By_DFoX.exe”复制到软件安装目录下;
默认目录【C:\Program Files\PremiumSoft\Navicat Premium 15】
在这里插入图片描述
以管理员身份注册机,选择Navicat v15,product选择premium,language选择simplified chinese,再点击patch按纽,注意不要选错版本,显示如下:
在这里插入图片描述
这时打开软件,点击注册按钮;
在这里插入图片描述
返回注册机,点击Generate会自动填写注册码;
在这里插入图片描述
再点击激活按纽,点击手动激活
在这里插入图片描述
将requese值复制到注册机中生成激活码;
在这里插入图片描述
最后将得到的激活码复制到软件框中即可激活软件,以上就是navicat premium 15中文破解版的详细安装教程。
在这里插入图片描述

二、代码

1.在数据库表中添加一条记录

package com.hbnu.jdbc;

import java.sql.*;

public class Demo1 {
    public static void main(String[] args) {
        Connection connection=null;
        Statement statement=null;
        try {
            //1.注册驱动
            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
            //2.获取数据库连接对象
            String url="jdbc:mysql://localhost:3306/class2110?serverTimezone=GMT&useSSL=false";
            String user="root";
            String password="123456";
            connection=DriverManager.getConnection(url,user,password);
            //3.获取数据库操作对象
            statement=connection.createStatement();//创建数据库操作对象
            //4.执行sql语句
            String sql="insert into tb_user values('xxxten','湖北',56233)";
            int count=statement.executeUpdate(sql);
            //5.处理查询结果集
            System.out.println("影响了"+count+"条记录");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //6.关闭数据库资源
        finally {
            try{
                if(statement!=null){
                    statement.close();
                }
            }catch (SQLException e){
                e.printStackTrace();
            }
            if(connection!=null){
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

2.删除数据表的某条记录

package com.hbnu.jdbc;

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

public class Demo2 {
    public static void main(String[] args) {
        try {
            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
            String url="jdbc:mysql://localhost:3306/class2110?serverTimezone=GMT&useSSL=false";
            String user="root";
            String password="123456";
            Connection connection = DriverManager.getConnection(url, user, password);
            Statement statement = connection.createStatement();

            String sql="delete from tb_user where id=1";
            int count=statement.executeUpdate(sql);
            System.out.println("影响了数据表"+count+"条数据");

            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

3.修改数据表的某条记录

package com.hbnu.jdbc;

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

public class Demo3 {
    public static void main(String[] args) {
        try {
            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());

            String url="jdbc:mysql://localhost:3306/class2110?serverTimezone=GMT&useSSL=false";
            String user="root";
            String password="123456";
            Connection connection = DriverManager.getConnection(url, user, password);

            Statement statement = connection.createStatement();
            String sql="update tb_user set username='tp加疾跑' where id=2";
            int count=statement.executeUpdate(sql);

            System.out.println("影响了"+count+"条记录");

            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

4.查询数据表的记录

package com.hbnu.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Demo4
{
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");

            String url="jdbc:mysql://localhost:3306/class2110?serverTimezone=GMT&useSSL=false";
            String user="root";
            String password="123456";
            Connection connection = DriverManager.getConnection(url, user, password);
            Statement statement = connection.createStatement();

            String sql="select id,username,address,account from tb_user";
            ResultSet resultSet=statement.executeQuery(sql);
            //处理查询结果集
            while(resultSet.next()){
                //通过具体字段名以具体类型获取数据
                int id=resultSet.getInt("id");
                String username=resultSet.getString("username");
                String address=resultSet.getString("address");
                double account=resultSet.getDouble("account");

                System.out.println("id:"+id+"\tusername:"+username+"\taddress:"+address+"\taccount:"+account);
            }
            //关闭数据库资源
            resultSet.close();
            statement.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

5.制作一个用户使用账号和密码登录的案例
数据库内容如:
在这里插入图片描述

package com.hbnu.jdbc;

import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Demo5 {
    public static void main(String[] args) {
        //用户输入账号和密码的界面
        Map<String,String>loginInfo=loginUI();

        //校验用户的登录信息
        boolean result=checkLoginInfo(loginInfo);

        System.out.println(result?"账号密码正确,登录成功":"账号密码错误,登录失败");
    }

    private static boolean checkLoginInfo(Map<String, String> loginInfo) {
        //定义一个登录成功或失败的标记
        boolean flag=false;

        //从集合中获取用户信息,获取用户输入的账号和密码
        String username=loginInfo.get("username");
        String password=loginInfo.get("password");

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");

            String url="jdbc:mysql://localhost:3306/class2110?serverTimezone=GMT&useSSL=false";
            String user="root";
            String pwd="123456";
            Connection connection = DriverManager.getConnection(url, user, pwd);

            //会产生SQL注入,所以用prepareStatement
//            Statement statement = connection.createStatement();

            //问号是占位符
            String sql="select * from tb_user where username=? and password=?";
            //对SQL语句进行预编译
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            //给占位符赋值,第一个问号的下标就是1
            preparedStatement.setString(1,username);
            preparedStatement.setString(2,password);
            ResultSet resultSet = preparedStatement.executeQuery();
            while (resultSet.next()){
                //如果能进入while循环,则说明用户输入的账号和密码是正确的
                flag=true;
                break;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return flag;
    }

    private static Map<String, String> loginUI() {
        //定义Map集合,用于存放用户的账号和密码
        Map<String,String>loginInfo=new HashMap<>();

        //获取用户输入的账号和密码
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您的账号:");
        String username=scanner.nextLine();
        System.out.println("请输入您的密码:");
        String password=scanner.nextLine();

        //将用户输入的账号和密码存入集合中
        loginInfo.put("username",username);
        loginInfo.put("password",password);
        //将存放账号和密码的集合发送给后端进行校验
        return loginInfo;
    }
}

持续更新。。。

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

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

相关文章

【Go】格式化字符串指令大全 Redis常用命令

【Go】格式化字符串指令大全 && Redis常用命令 原创&#xff1a;As.Kai 博客地址&#xff1a;https://blog.csdn.net/qq_42362997 如果以下内容对您有帮助&#xff0c;点赞点赞点赞~ 目录 格式化格式化字符串指令大全%s 用于插入字符串%d 用于插入整数%f 用于插入浮点数…

Spring AOP源码解读

今天我们来分析Spring中AOP的源码&#xff0c;主要是关于SpringAOP是如何发挥作用的。 前期准备 首先我们需要有一个Spring AOP项目&#xff0c;添加好了SpringAOP的依赖。 <dependency><groupId>org.springframework</groupId><artifactId>spring-co…

项目基础配置

1、Spring整合MyBatis&#xff1a; 在子工程中加入所需要的依赖 准备jdbc.properties 创建spring的配置文件、整合spring和mybatis 在spring的配置文件中加载jdbc.properties 配置数据源 测试数据库连接 配置SqlSessionFactoryBean 装配数据源 指定XXXMapper.xml文件的位…

DVWA-SQL Injection SQL注入

概念 SQL注入&#xff0c;是指将特殊构造的恶意SQL语句插入Web表单的输入或页面请求的查询字符串中&#xff0c;从而欺骗后端Web服务器以执行该恶意SQL语句。 成功的 SQL 注入漏洞可以从数据库中读取敏感数据、修改数据库数据&#xff08;插入/更新/删除&#xff09;、对数据…

【已解决】VSCode运行C#控制台乱码显示

问题描述 如上图所示&#xff0c;最近在学习C#突然发现我在运行Hello World的时候出现这样的乱码情况。 分析原因 主要是因为VS Code 是UTF-8的编码格式&#xff0c;而我们的PC是Unicode编码&#xff0c;所以我们需要对其进行一个统一即可解决问题。那么知道这个的问题那就开…

“创新深化 数实融合”,AntDB数据库邀您参与“2023世界数字经济大会暨第十三届智慧城市与智能经济博览会”

10月13日&#xff0c;“2023世界数字经济大会暨第十三届智慧城市与智能经济博览会”将在浙江宁波国际会议展览中心隆重启幕&#xff0c;AntDB数据库受邀参会&#xff0c;并诚挚邀请各位领导嘉宾莅临会场参观指导。 图1&#xff1a;会议邀请函 “2023世界数字经济大会暨第十三届…

BUUCTF Reverse 新年快乐

下载文件先查壳&#xff0c;可以看到有UPX壳 用upx脱壳 拖到ida pro32&#xff0c;shiftF12查看字符串&#xff0c;看到关键字flag&#xff0c;双击进去 双击然后f5查看伪代码 main函数伪代码 关键函数&#xff1a; strncmp(const char *str1, const char *str2, size_t n)…

asp.net老年大学教务管理信息系统VS开发sqlserver数据库web结构c#编程

一、源码特点 asp.net 老年大学教务管理信息系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使 用c#语言开发 asp.net老年大学教务管理…

【java学习—十】HashSet集合(4)

文章目录 1. Java集合概述2. HashSet3. 泛型 1. Java集合概述 Java 集合类存放于 java.util 包中&#xff0c;是一个用来存放对象的容器。 ① 集合只能存放对象。比如你存一个 int 型数据 1 放入集合中&#xff0c;其实它是自动转换成 Integer类后存入的&#xff0c; Java 中每…

Animate(原Flash)和木疙瘩中遮罩动画秒懂

遮罩&#xff1a;就是遮住别人的罩&#xff0c;比如桌布遮住桌子&#xff0c;床单遮住床面&#xff01; 桌布就是遮罩层&#xff0c;桌子就是被遮罩层&#xff01; 让一个立方体在圆中显示&#xff0c;把圆作为遮罩层&#xff0c;放在上面图层&#xff01;立方体紧挨放在下面…

C语言 每日一题 PTA 10.29 day7

1.特殊a串数列求和 给定两个均不超过9的正整数a和n&#xff0c;要求编写程序求a aa aaa⋯ aa⋯a&#xff08;n个a&#xff09;之和。 输入格式&#xff1a; 输入在一行中给出不超过9的正整数a和n。 输出格式&#xff1a; 在一行中按照“s 对应的和”的格式输出。 思路 n…

yolov5的pqt、qat量化---1(知识准备工作)

1、Pytorch-Quantization简介 PyTorch Quantization是一个工具包,用于训练和评估具有模拟量化的PyTorch模型。PyTorch Quantization API支持将 PyTorch 模块自动转换为其量化版本。转换也可以使用 API 手动完成,这允许在不想量化所有模块的情况下进行部分量化。例如,一些层可…

LV.12 D11 FS4412开发环境搭建 学习笔记

开发板硬件资源介绍 初识电路原理图 元器件查找 1.搜索丝印 2.查找目录 网络标号 电路图中网络标号相同的节点在电气上是连接在一起的 交叉开发环境搭建 1.在ubuntu下安装交叉编译工具链 2.在windows下安装SecureCRT 3.在windows下安装USB转串口驱动…

C++之Args可变参数模板总结(二百五十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

一文解读WordPress网站的各类缓存-老白博客

缓存是一种重要的WordPress优化手段&#xff0c;用于提高网站的性能和加载速度。减少计算量&#xff0c;有效提升响应速度&#xff0c;让有限的资源服务更多的用户。本文老白博客便从自己的使用简单给大家介绍下WordPress的缓存&#xff0c;包括 站点缓存&#xff08;Page Cach…

C语言——输入 10 个学生的姓名、学号和成绩,将其中不及格者的姓名、学号和成绩输出

完整代码&#xff1a; // 输入 10 个学生的姓名、学号和成绩&#xff0c;将其中不及格者的姓名、学号和成绩输出 #include<stdio.h> //学生的个数 #define N 10 struct Student {char name[20];int id;int grade; };int main(){//定义学生结构体数组struct Student stu[…

【C++笔记】C++多态

【C笔记】C多态 一、多态的概念及实现1.1、什么是多态1.2、实现多态的条件1.3、实现继承与接口继承1.4、多态中的析构函数1.5、抽象类 二、多态的实现原理 一、多态的概念及实现 1.1、什么是多态 多态的概念&#xff1a; 在编程语言和类型论中&#xff0c;多态&#xff08;英…

零基础Linux_24(多线程)线程同步+条件变量+生产者消费模型_阻塞队列版

目录 1. 线程同步和生产者消费者模型 1.1 生产者消费者模型的概念 1.2 线程同步的概念 1.3 生产者消费者模型的优点 2. 线程同步的应用 2.1 条件变量的概念 2.2 条件变量操作接口 3. 生产者消费者模型_阻塞队列 3.1 前期代码&#xff08;轮廓&#xff09; 3.2 中期代…

Starknet开发工具

1. 引言 目前Starknet的开发工具流可为&#xff1a; 1&#xff09;Starkli&#xff1a;音为Stark-lie&#xff0c;为替换官方starknet-CLI的快速命令行接口。Starkli为单独的接口&#xff0c;可独自应用&#xff0c;而不是其它工具的组件。若只是想与Starknet交互&#xff0…