2016-04-08 9 views
1

So ist der Zweck dieser Datenbank machen kann, ist, die Abfragen für eine Website benötigt, um auszuführen, die diese zugreifen werden, hier ist der Code:nicht erfolgreiche Verbindung zur MySQL-Datenbank mit Java

package dodRus; 
//STEP 1. Import required packages 
import java.sql.*; 

public class Connect_Database { 
// JDBC driver name and database URL 
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/?user=root"; 

// Database credentials 
static final String USER = "root"; 
static final String PASS = ; 

public static void main(String[] args) { 
Connection conn = null; 
Statement stmt = null; 
try{ 
    //STEP 2: Register JDBC driver 
    Class.forName("com.mysql.jdbc.Driver"); 

    //STEP 3: Open a connection 
    System.out.println("Connecting to database..."); 
    conn = DriverManager.getConnection(DB_URL,USER,PASS); 

    //STEP 4: Execute a query 
    System.out.println("Creating statement..."); 
    stmt = conn.createStatement(); 
    String sql; 
    sql = "INSERT INTO Inventory " + "VALUES (shirt,1234,5)"; 
    stmt.executeUpdate(sql); 


}catch(SQLException se){ 
    //Handle errors for JDBC 
    se.printStackTrace(); 
}catch(Exception e){ 
//Handle errors for Class.forName 
    e.printStackTrace(); 
}finally{ 
    //finally block used to close resources 
    try{ 
     if(stmt!=null) 
      stmt.close(); 
    }catch(SQLException se2){ 
    }// nothing we can do 
    try{ 
     if(conn!=null) 
      conn.close(); 
    }catch(SQLException se){ 
     se.printStackTrace(); 
    }//end finally try 
    }//end try 

} 
} 

und hier der Fehler:

java.sql.SQLException: No database selected 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695) 
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3020) 
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1074) 
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1008) 
    at dodRus.Connect_Database.main(Connect_Database.java:30) 

Offensichtlich ist es keine erfolgreiche Verbindung zur Datenbank zu machen, aber ich kann nicht herausfinden, warum

+2

Ich hoffe wirklich, Sie haben nicht das echte root Passwort in Ihrem Beispielcode ... –

+1

Selbst wenn es localhost ist, immer noch keine gute Idee, es zu posten – bmarkham

+1

Anyways haben Sie nie den Datenbanknamen angegeben, den Sie in Ihrem verwenden werden url. Fehler sagt es genau dort. url sollte 'jdbc: mysql: //127.0.0.1: 3306/(Datenbankname hier) sein? user = root' – bmarkham

Antwort

2

Sie müssen die Namen der Datenbank in Ihrem DSN enthalten Zeichenfolge.

static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/<name_of_database>?user=" + USER + "&password=" + PASS; 

Siehe Connector/J documentation.

Verwandte Themen