}
改为 password = "727272";为
password=pro.getProperty("password");
后异常,Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4417)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1278)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
at com.mysql.jdbc.ConnectionImpl.
at com.mysql.jdbc.JDBC4Connection.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at BasicConnectionDemo.easyConnect(BasicConnectionDemo.java:58)
at BasicConnectionDemo.main(BasicConnectionDemo.java:42)
把Class.forName("com.mysql.jdbc.Driver");
改为Class.forName( driver);
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at BasicConnectionDemo.easyConnect(BasicConnectionDemo.java:48)
at BasicConnectionDemo.main(BasicConnectionDemo.java:42)
把username="root";
改为 username = pro.getProperty("username ");
异常:
Exception in thread "main" java.sql.SQLException: Access denied for user ''@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4417)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1278)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
at com.mysql.jdbc.ConnectionImpl.
at com.mysql.jdbc.JDBC4Connection.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at BasicConnectionDemo.easyConnect(BasicConnectionDemo.java:58)
at BasicConnectionDemo.main(BasicConnectionDemo.java:42)
Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 分别是无法登陆和找不到驱动。
可是不用properties是可以登陆的。
于是我又测试了一下从db.properties读出来的是什么东西
System.out.println("driver:"+driver);
System.out.println("password:"+password);
System.out.println("username:"+username);
System.out.println("url:"+url);
System.out.println("driver的类型:"+driver.getClass());
System.out.println("password的类型:"+password.getClass());
System.out.println("username的类型:"+username.getClass());
System.out.println("url的类型:"+url.getClass());
结果显示的都是字符串类型,而且值又和直接对字符串赋的值一样的。
但为什么还是无法登陆了?。后来抱着试一试的态度
我又发现db.properties的每一行都有空格,删掉,就成功了
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/bookstore
username=root
password=727272