mysql和IDEA的连接问题

img

img

img

运行不报错,甚至我把密码改成mysql错误的密码也不报错,mysql数据库已经连上了,可是不管怎么操作数据库都是没反应??是不是漏掉某一步骤了,代码也没有错呀?

是不是你的注册驱动错了,你写的是"com.sql.jdbc.Driver"改成"com.mysql.jdbc.Driver"试试

建议重启mysql服务

package JDBC;

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

public class test01 {
    public static void main(String args[]) {
        //初始化一个界面,并获取用户所输入的账号和密码
        Map<String,String> loginInfo = initUI();
        //验证用户名、密码--->登录成功或是登录失败!
        boolean LoginSuccess = login(loginInfo);
        System.out.println(LoginSuccess ? "登录成功" : "登陆失败");
    }


    //=========登录方法==========
   public static Map<String, String> initUI() {
        Scanner a = new Scanner(System.in);
        System.out.print("用户名:");
        String userName = a.nextLine();
        System.out.print("密码:");
        String userPassword = a.nextLine();
        Map<String, String> LoginInfo = new HashMap<>();
        LoginInfo.put("loginName",userName);
        LoginInfo.put("loginPassword",userPassword);
        return LoginInfo;
    }

    //==========连接数据库验证方法======
    private static boolean login(Map<String, String> loginInfo) {
        boolean LoginSuccess = false;
        String loginName = loginInfo.get("loginName");
        String loginPassword = loginInfo.get("loginPassword");

        //JBDC代码
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try{//注册驱动 获取连接 获取数据库操作对象 执行sql 处理结果集
            //1,注册驱动
            Class.forName("com.sql.jdbc.Driver");
            //2.获取连接
            String url = "jdbc:mysql://localhost:3306/user?serverTimezone=GMT&useSSL=false";
            String user = "root";
            String pswd = "150540";
            conn = DriverManager.getConnection(url,user,pswd);
            //3.获取数据库连接对象
            stmt = conn.createStatement();
            //4.执行sql
            String str = "select * from t_user where loginName='"+loginName+"' and loginPassword = '"+loginPassword+"';";
            rs = stmt.executeQuery(str);
            //5.处理结果集
            if(rs.next()){
                LoginSuccess = true;
            }
        }catch (Exception e){
            e.getStackTrace();}

        finally {  //释放资源
            if(rs != null) {
                try {
                    rs.close();
                }catch (SQLException e){
                    e.getStackTrace();
                }
            }
            if(stmt != null) {
                try {
                    stmt.close();
                }catch (SQLException e){
                    e.getStackTrace();
                }
            }
            if(conn != null) {
                try {
                    conn.close();
                }catch (SQLException e){
                    e.getStackTrace();
                }
            }
        }
        return LoginSuccess;

    }
}



连接mysql数据库失败原因可能是以下几种原因
1、数据库的服务是否打开
2、是否在新建了对应的数据库
3、是否添加了jar包
4、是否加载了驱动
5、连接字符串、登录名以及密码是否有误

或者试下这个示例
java连接mysql数据库类

public class SqlConnection {
//这里是SqlConnection 类
 
        /*
        *java连接mysql数据库
        *1、加载驱动程序
        *2、数据库连接字符串"jdbc:mysql://localhost:3306/数据库名?"
        *3、数据库登录名
        *3、数据库登录密码
        */
 
    private static final String URL="jdbc:mysql://localhost:3306/deom?";//数据库连接字符串,这里的deom为数据库名
    private static final String NAME="admin";//登录名
    private static final String PASSWORD="13245";//密码
    
    public void TheSqlConnection()
    {
        //1.加载驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("未能成功加载驱动程序,请检查是否导入驱动程序!");
                        //添加一个println,如果加载驱动异常,检查是否添加驱动,或者添加驱动字符串是否错误
            e.printStackTrace();
        }
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(URL, NAME, PASSWORD);
                System.out.println("获取数据库连接成功!");
        } catch (SQLException e) {
            System.out.println("获取数据库连接失败!");
                        //添加一个println,如果连接失败,检查连接字符串或者登录名以及密码是否错误
            e.printStackTrace();
        }
               //数据库打开后就要关闭
        if(conn!=null)
        {
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                conn=null;
            }
        }
    }
}

调用类

package com.king.sqlCon;
 
public class MainCalss {
 
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        new SqlConnection().TheSqlConnection();
    }
 
}

img

建议debug 模式启动。打个断点调试下

报错都进catch里面了,这个里面没打印肯定看不到报错