2017-12-14 13 views
-1

Class.forName("com.mysql.jdbc.Driver")に問題があります。メソッド内のClass.forName( "com.mysql.jdbc.Driver")

私はSQLメンテナンスとGUIのために別のクラスを作成したいと思います。私がClass.forName("com.mysql.jdbc.Driver");ファイルを直接入力すると、すべてがメインになります。私は、SQLのメンテナンスのための別のクラスを作成しようとすると、それは例外の束を投げています。スロー

public static void main(String[] args) { 

    Connection conn = null; 

    SqlMaitanance DB1 = new SqlMaitanance(); 
    DB1.createDB("XD"); 
} 


//Class for SQL maitanance 

public class SqlMaitanance extends Example { 

//Variables 

public static String dataBaseName = "DBFROMMETHOD"; 
public static String dbTableName; 


public static ResultSetMetaData rsmd = null; 
public static ResultSet rs = null; 
public static Statement stmt = null; 
public static Connection conn = null; 
public static final String JdbcDriver = "com.mysql.jbdc.Driver"; 
public static final String UserName = "root"; 
public static final String Password = "Herflik$00121"; 

public static final String Url = "jdbc:mysql://localhost/" + dataBaseName; 

//Constructor 

public SqlMaitanance() { 


    createDB(this.dataBaseName); 


} 

//Methods 

public static void createDB(String dataBaseName){ 

    String crtTable = "CREATE DATABASE " + dataBaseName; 
    try{ 


     conn = DriverManager.getConnection(Url,UserName,Password); 

     stmt = conn.createStatement(); 
     stmt.executeUpdate(crtTable); 
     rs.close(); 
    } 
    catch(SQLException e){ 
    //Handle exceptions for ClassforName 

    e.printStackTrace(); 

    } 
    finally{ 

     try{ 
      if(stmt!=null) 
       conn.close(); 
     }catch(SQLException se){ 
     }// do nothing 
     try{ 
      if(conn!=null) 
       conn.close(); 
     }catch(SQLException se){ 
      se.printStackTrace(); 
     }//end finally try 
    } 


} 

エラー:

木12月14日午後10時35分47秒CET 2017 WARN: サーバの身元確認せずにSSL接続を確立することはお勧めしません。 MySQL によると、5.5.45+、5.6.26+、および5.7.6+の要件明示的なオプションが設定されていない場合、デフォルトでSSL接続を確立する必要があります。準拠のために、 SSLを使用していない既存のアプリケーションでは、verifyServerCertificate プロパティが 'false'に設定されています。 SSL を明示的に無効にするか、useSSL = falseに設定するか、またはuseSSL = trueに設定して、 サーバー証明書の確認にtruststoreを指定する必要があります。 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)で sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブメソッド)で不明な データベース 'dbfrommethod' com.mysql.jdbc.Util.handleNewInstanceでjava.lang.reflect.Constructor.newInstance(Constructor.java:423) でsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) (Util.javaで: 425)at com.mysql.jdbc.Util.getInstance(Util.java:408)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)at com.m ysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873) com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImplでcom.mysql.jdbc.MysqlIO.doHandshakeで com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1710) (MysqlIO.java:1226)で。 Javaの:2188) でcom.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2219) でcom.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2014)com.mysql.jdbcで 。 ConnectionImpl。(ConnectionImpl.java:776)at com.mysql.jdbc.JDBC4Connection(JDBC4Co nnection.java:47) でsun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブメソッド) でsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) で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) 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) java.sql.Dri SqlMaitanance.createDB(SqlMaitanance.java:40) SqlMaitanance(SqlMaitanance.java:27)の にある。java:24)

+0

https://stackoverflow.com/questions/2839321/connect-java-to-a-mysql-database – clinomaniac

+1

データベースの名前も確認してください。 – clinomaniac

答えて

0

OK、取得しました。私は多くの間違いを犯しました。私は自分のコードを見て修正した。ここに答え

import javax.swing.plaf.nimbus.State; 
import java.sql.*; 

public class SqlMaitanance { 

//Variables 

public static String dataBaseName; 
public static String dbTableName; 


public static ResultSetMetaData rsmd = null; 
public static ResultSet rs = null; 
public static Statement stmt = null; 
public static Connection conn = null; 
public static final String JdbcDriver = "com.mysql.jbdc.Driver"; 
public static final String UserName = "root"; 
public static final String Password = "Herflik$00121"; 

public static String Url; 

//Constructor 

コンストラクタを働いていること

public SqlMaitanance() { 


} 

//Methods 

方法は、私はそれゆえ、既存のされていないDBに接続できないローカル変数

public static void createDB(String dbN){ 

を持つべき変数DATABASENAMEを参照せずに空のままにして私はshoren URLを持っています

Url = "jdbc:mysql://localhost/"; 
    String crtTable = "CREATE DATABASE " + dbN; 

    try{ 

     Class.forName("com.mysql.jdbc.Driver"); 
     conn = DriverManager.getConnection(Url,UserName,Password); 

     stmt = conn.createStatement(); 
     stmt.executeUpdate(crtTable); 
     rs.close(); 
    } 
    catch(SQLException e){ 
    //Handle exceptions for ClassforName 

    e.printStackTrace(); 

    } 
    catch(ClassNotFoundException e){ 

     e.getException(); 
    } 
    finally{ 

     try{ 
      if(stmt!=null) 
       conn.close(); 
     }catch(SQLException se){ 
     }// do nothing 
     try{ 
      if(conn!=null) 
       conn.close(); 
     }catch(SQLException se){ 
      se.printStackTrace(); 
     }//end finally try 
    } 


} 

public static void createTable(){ 


} 



} 

フォーマットエラーのため申し訳ありません。

関連する問題