Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

Java-MySQL을 사용하여 JDBC 오류의 알 수 없는 데이터베이스를 해결하시겠습니까?

<시간/>

이 유형의 오류는 MySQL에 존재하지 않는 데이터베이스를 선택하는 경우 발생합니다. 먼저 JDBC에서 알 수 없는 데이터베이스의 오류를 표시해 보겠습니다.

자바 코드는 다음과 같다. 여기서는 데이터베이스를 존재하지 않는 'onlinebookstore'로 설정했습니다.

import java.sql.Connection;
import java.sql.DriverManager;
public class UnknownDatabaseDemo {
   public static void main(String[] args) {
      String JdbcURL = "jdbc:mysql://localhost:3306/onlinebookstore?useSSL=false";
      String Username = "root";
      String password = "123456";
      Connection con = null;
      try {
         con = DriverManager.getConnection(JdbcURL, Username, password);
         System.out.println("Connected to MySQL database");
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

다음은 동일한 오류를 표시하는 출력입니다.

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'onlinebookstore'
   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.Util.getInstance(Util.java:408)
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
   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.(ConnectionImpl.java:778)
   at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
   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:386)
   at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
   at java.sql.DriverManager.getConnection(Unknown Source)
   at java.sql.DriverManager.getConnection(Unknown Source)
   at UnknowDatabaseDemo.main(UnknowDatabaseDemo.java:15)

오류 스크린샷은 다음과 같습니다.

Java-MySQL을 사용하여 JDBC 오류의 알 수 없는 데이터베이스를 해결하시겠습니까?

이러한 유형의 오류를 제거하려면 MySQL 명령줄로 이동하여 모든 데이터베이스 이름을 표시하고 거기에서 선택한 이름, 즉 실제로 존재하는 데이터베이스를 사용하십시오.

여기에는 많은 데이터베이스가 있으며 'hb_student_tracker' 데이터베이스를 선택하겠습니다. 다음은 SHOW DATABASES 명령을 사용하여 얻은 모든 데이터베이스 이름 목록입니다.

Java-MySQL을 사용하여 JDBC 오류의 알 수 없는 데이터베이스를 해결하시겠습니까?

다음은 "hb_student_tracker" 데이터베이스를 연결하는 JDBC 코드입니다. 코드는 다음과 같습니다.

import java.sql.Connection;
import java.sql.DriverManager;
public class UnknownDatabaseDemo {
   public static void main(String[] args) {
      String JdbcURL = "jdbc:mysql://localhost:3306/hb_student_tracker?useSSL=false";
      String Username = "root";
      String password = "123456";
      Connection con = null;
      try {
         con = DriverManager.getConnection(JdbcURL, Username, password);
         System.out.println("Connected to MySQL database");
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

스크린샷은 다음과 같이 출력을 표시합니다.

Java-MySQL을 사용하여 JDBC 오류의 알 수 없는 데이터베이스를 해결하시겠습니까?