QAQ

今日流程

SLQyog图形界面连接

首先,要连接本机上的Mysql数据库,这里我出现了一些意想不到的问题,在cmd界面中,我是没有设置密码的 -u root -p 之后按回车就ok了,然而在图形管理连接界面,不输入密码连接测试,发现无法匹配。故准备去修改一下密码,发现操作失误,登陆不进去数据库,心态炸裂。但问题还得解决,
准备直接强制进入数据库,重设密码,但在my.ini中设置skip-grant-tables的方法莫得用,在网络学习一番后,现是因为Mysql版本过高,方法不对。
在Mysql8.0版本中,应当先关闭数据库,然后使用:

mysqld --console --skip-grant-tables --shared-memory

再打开一个新的cmd,无密码登录MySQL,输入登录命令:

mysql -u root -p

无密码登录之后:

use mysql
update user set authentication_string=’’ where user=‘root’;

重启登陆之后,按照老办法设置密码

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;

就ok了~

利用图形界面创建表单

在这里插入图片描述
这里没什么好记录的 也没什么问题

IDEA项目搭建

首先创建项目,然后导入mysql对应版本的jar包,我这里是mysql8.0.15
在这里插入图片描述
这里有两个坑爹的点:

Class.forName(“com.mysql.cj.jdbc.Driver”);
connection = DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/user?useSSL=true&autoReconnect=true&failOverReadOnly=false&serverTimezone=UTC&characterEncoding=utf-8&user=root&password=root”);

(1)在配置DriverClass时,类不能再写成com.mysql.jdbc.Driver,应该写成com.mysql.cj.jdbc.Driver.

(2)最重要的是在数据库的url中要加入时区信息:serverTimezone=UTC。

之后,没发现什么问题,吃一堑长一智,我还是想头铁用8.X。

Util类的编写


import java.sql.*;

public class main {

        public static void main(String[] args)throws ClassNotFoundException, SQLException {

            ResultSet rs = null;
            Connection connection = null;
            PreparedStatement statement = null;
            try {
                //1.加载驱动
                Class.forName("com.mysql.cj.jdbc.Driver");
                //2.创建连接
                connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user?useSSL=true&autoReconnect=true&failOverReadOnly=false&serverTimezone=UTC&characterEncoding=utf-8&user=root&password=123456");
                System.out.println("successful!");

                //3.写sql
                String sql = "select * from userinfo";
                //4.得到statement对象执行sql
                statement = connection.prepareStatement(sql);
                //5.得到结果集
                rs = statement.executeQuery();
                //6.处理结果集
                while (rs.next()) {
                    System.out.println(rs.getInt(1));
                    System.out.println(rs.getString(2));
                    System.out.println(rs.getString(3));
                    //7.关闭资源
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (rs != null) {
                    try {
                        rs.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (statement != null) {
                    try {
                        statement.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (connection != null) {
                    try {
                        connection.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }

            }
        }

}

这是一个简单的测试用例~

简单的JDBC操作

写在前面,老师讲的东西以前是学过的,虽然的确让我想起了尘封已久的java知识,但我觉得按整体系统的讲会好很多,上午走一步讲一点弄得我思路好乱,因为知识点没讲完,所以整个层次和结构不完整,很难受。所以我按照自己的思路先写了一下。
结果如下:
在这里插入图片描述
工具类

package util;

import java.sql.*;

public class DButil {
    public static Connection getCon(){
        Connection connection=null;
        try{
            //1.加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.创建连接
            connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user?useSSL=true&autoReconnect=true&failOverReadOnly=false&serverTimezone=UTC&characterEncoding=utf-8&user=root&password=123456");


        }catch(Exception e){

        }return  connection;
    }
    public static void closeAll(ResultSet rs, PreparedStatement stmt,Connection conn ) {
        try {
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (stmt != null) {
                stmt.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (rs != null) {
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public static int update(String sql, Object... obArray){
        Connection conn = DButil.getCon();
        PreparedStatement stmt=null;
        try {
            stmt = conn.prepareStatement(sql);
            for (int i = 0; i < obArray.length; i++) {
                stmt.setObject(i+1,obArray[i]);
            }
            int result = stmt.executeUpdate();
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DButil.closeAll(null,stmt,conn);
        }
        // 如果代码执行到这个位置,那么肯定是出了异常
        // 这个时候直接返回0;
        return 0;
    }
}


实体类

package bean;

public class Userinfo {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "Userinfo{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public Userinfo() {
    }
}

数据库操作类

package dao;

import bean.Userinfo;
import util.DButil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class UserinfoDao {
    public static List<Userinfo> findAll(){
        ResultSet rs = null;
        Connection connection = null;
        PreparedStatement statement = null;
        List<Userinfo> list=new ArrayList<>();
        //3.写sql
        String sql = "select * from userinfo";
        try {
            connection=DButil.getCon();
            //4.得到statement对象执行sql
            statement = connection.prepareStatement(sql);
            //5.得到结果集
            rs = statement.executeQuery();
            //6.处理结果集
            while (rs.next()) {
                Userinfo userinfo=new Userinfo();
                userinfo.setId(rs.getInt(1));
                userinfo.setUsername(rs.getString(2));
                userinfo.setPassword(rs.getString(3));
                list.add(userinfo);
                //7.关闭资源
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DButil.closeAll(rs,statement,connection);

        }
        return list;
    }
    public static int insert(){
        String sql="insert into userinfo(id,name,password)values(?,?,?)";
        return DButil.update(sql,"5","JieGe","875");

    }
    public static int updateUser(){
        String sql="update userinfo set name=? where name=? ";
        return DButil.update(sql,"Lijiawei","AWei");
    }
    public static int deleteUser(){
        String sql="delete from userinfo where name=?";
        return DButil.update(sql,"JieGe")  ;
    }
}

算是复习了一下之前图书管理系统的知识,熟悉了一下IDEA的使用吧,知识还在恢复中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值