JDBC与MySql数据库

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

1.下载Mysql

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

文件解压缩到本地
JDBC与MySql数据库_第1张图片
在此路径下新增my.ini文件以及新建data文件夹

JDBC与MySql数据库_第2张图片
编辑my.ini文件
JDBC与MySql数据库_第3张图片
配置环境变量
JDBC与MySql数据库_第4张图片
JDBC与MySql数据库_第5张图片
注意是编辑系统变量的Path
JDBC与MySql数据库_第6张图片
以管理员身份运行cmd
JDBC与MySql数据库_第7张图片

输入命令: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位是第二个
JDBC与MySql数据库_第8张图片
以64位为例,双击文件“navicat150_premium_cs_x64.exe”安装软件,依提示安装即可;
JDBC与MySql数据库_第9张图片
成功安装后,先不打开软件,将注册机文件“Navicat_Keygen_Patch_v5.6_By_DFoX.exe”复制到软件安装目录下;
默认目录【C:\Program Files\PremiumSoft\Navicat Premium 15】
JDBC与MySql数据库_第10张图片
以管理员身份注册机,选择Navicat v15,product选择premium,language选择simplified chinese,再点击patch按纽,注意不要选错版本,显示如下:
JDBC与MySql数据库_第11张图片
这时打开软件,点击注册按钮;
JDBC与MySql数据库_第12张图片
返回注册机,点击Generate会自动填写注册码;
JDBC与MySql数据库_第13张图片
再点击激活按纽,点击手动激活
JDBC与MySql数据库_第14张图片
将requese值复制到注册机中生成激活码;
JDBC与MySql数据库_第15张图片
最后将得到的激活码复制到软件框中即可激活软件,以上就是navicat premium 15中文破解版的详细安装教程。
JDBC与MySql数据库_第16张图片

二、代码

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.制作一个用户使用账号和密码登录的案例
数据库内容如:
JDBC与MySql数据库_第17张图片

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;
    }
}

持续更新。。。

你可能感兴趣的:(Java,数据库,mysql,java)