本帖最后由 孤世星辰 于 2024-3-24 19:06 编辑
package zwl.lesson;
import java.sql.*;
import static java.lang.Class.forName;
public class jdbcFisrstDemo {
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username="root";
String password="123456";
Connection connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
String sql="SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next())
{
System.out.println("id="+resultSet.getObject("id"));
System.out.println("name="+resultSet.getObject("NAME"));
System.out.println("pwd="+resultSet.getObject("PASSWORD"));
System.out.println("email="+resultSet.getObject("email"));
System.out.println("birth="+resultSet.getObject("birth"));
}
resultSet.close();
statement.close();
connection.close();
}
}
E:\JAVAJDK\bin\java.exe "-javaagent:E:\IDEA Community\IntelliJ IDEA Community Edition 2021.3.1\lib\idea_rt.jar=55513:E:\IDEA Community\IntelliJ IDEA Community Edition 2021.3.1\bin" -Dfile.encoding=UTF-8 -classpath "E:\JAVAJDK\jre\lib\charsets.jar;E:\JAVAJDK\jre\lib\deploy.jar;E:\JAVAJDK\jre\lib\ext\access-bridge-64.jar;E:\JAVAJDK\jre\lib\ext\cldrdata.jar;E:\JAVAJDK\jre\lib\ext\dnsns.jar;E:\JAVAJDK\jre\lib\ext\jaccess.jar;E:\JAVAJDK\jre\lib\ext\jfxrt.jar;E:\JAVAJDK\jre\lib\ext\localedata.jar;E:\JAVAJDK\jre\lib\ext\nashorn.jar;E:\JAVAJDK\jre\lib\ext\sunec.jar;E:\JAVAJDK\jre\lib\ext\sunjce_provider.jar;E:\JAVAJDK\jre\lib\ext\sunmscapi.jar;E:\JAVAJDK\jre\lib\ext\sunpkcs11.jar;E:\JAVAJDK\jre\lib\ext\zipfs.jar;E:\JAVAJDK\jre\lib\javaws.jar;E:\JAVAJDK\jre\lib\jce.jar;E:\JAVAJDK\jre\lib\jfr.jar;E:\JAVAJDK\jre\lib\jfxswt.jar;E:\JAVAJDK\jre\lib\jsse.jar;E:\JAVAJDK\jre\lib\management-agent.jar;E:\JAVAJDK\jre\lib\plugin.jar;E:\JAVAJDK\jre\lib\resources.jar;E:\JAVAJDK\jre\lib\rt.jar;C:\Users\a2032\Desktop\JAVA cod\zwl\out\production\zwl;C:\Users\a2032\Desktop\JAVA cod\zwl\lib\mysql-connector-java-5.1.47.jar" zwl.lesson.jdbcFisrstDemo
Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1714)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1224)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2199)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2230)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2025)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:778)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at zwl.lesson.jdbcFisrstDemo.main(jdbcFisrstDemo.java:13)
Process finished with exit code 1
我是在这个地址下的java包https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/
这是我的jdk版本
java -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)
在鱼油的Java程序中,你正尝试使用JDBC连接到MySQL数据库,并执行一个查询来获取 users 表中的所有数据。
不幸的是,程序运行时抛出了一个 SQLException ,提示“Access denied for user 'root'@'localhost' (using password: YES)”。
这表示程序尝试使用用户名 root 和你提供的密码连接到本地的MySQL服务器时,访问被拒绝了。
这个问题通常是由于以下原因之一引起的:
- 1. 密码错误:提供给 root 用户的密码不正确。
- 2. 权限配置: root 用户没有被授予访问数据库的权限。
- 3. MySQL服务未运行:本地的MySQL服务没有运行或无法接受连接。
为了解决这个问题,你可以尝试以下步骤:
- 确保你为 root 用户提供的密码是正确的。
- 检查MySQL服务器是否正在运行,并且监听在正确的端口(默认是3306)。
- 登录MySQL数据库管理工具,确认 root 用户有权访问 jdbcstudy 数据库,并且该权限允许来自 localhost 的连接。
- 如果使用了防火墙,确保没有阻止应用程序与MySQL服务器的通信。
请检查这些配置,并对照你的设置来调整上述步骤。一旦权限和连接细节都确认无误,你的程序应该能够成功连接到数据库并执行查询操作。
|