运行不报错,甚至我把密码改成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();
}
}
建议debug 模式启动。打个断点调试下
报错都进catch里面了,这个里面没打印肯定看不到报错