JDBC与MySql数据库

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

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.在数据库表中添加一条记录

java 复制代码
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.删除数据表的某条记录

java 复制代码
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.修改数据表的某条记录

java 复制代码
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.查询数据表的记录

java 复制代码
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.制作一个用户使用账号和密码登录的案例

数据库内容如:

java 复制代码
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;
    }
}

持续更新。。。

相关推荐
原野心存7 分钟前
java基础进阶——继承、多态、异常捕获(2)
java·java基础知识·java代码审计
进阶的架构师12 分钟前
互联网Java工程师面试题及答案整理(2024年最新版)
java·开发语言
黄俊懿12 分钟前
【深入理解SpringCloud微服务】手写实现各种限流算法——固定时间窗、滑动时间窗、令牌桶算法、漏桶算法
java·后端·算法·spring cloud·微服务·架构
木子020421 分钟前
java高并发场景RabbitMQ的使用
java·开发语言
IvorySQL26 分钟前
济南站活动回顾|IvorySQL中的Oracle XML函数使用示例及技术实现原理
xml·数据库·sql·postgresql·oracle·开源
夜雨翦春韭32 分钟前
【代码随想录Day29】贪心算法Part03
java·数据结构·算法·leetcode·贪心算法
Data 3171 小时前
Hive数仓操作(十)
大数据·数据库·数据仓库·hive·hadoop
ON.LIN1 小时前
Hadoop大数据入门——Hive-SQL语法大全
大数据·数据库·hive·hadoop·分布式·sql
大霞上仙1 小时前
jmeter学习(1)线程组与发送请求
java·学习·jmeter
Elastic 中国社区官方博客1 小时前
Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持
大数据·数据库·人工智能·elasticsearch·搜索引擎