2012-03-31 137 views
1

我是java中的新手。我正在做一個java上的程序來實現eclipse上的connector j插件。我完成安裝後。我測試了數據庫連接。下面的代碼我用於測試連接。Mysql連接器j錯誤

import javax.swing.JOptionPane; 
import java.sql.*; 
public class JDBCProgram{ 

    static String userid="root", password = "devkbsc"; 
    static String url = "jdbc:mysql://localhost:3306/nejagar"; 
    // String url = "jdbc:mysql://localhost:3306/nejagar"; ? 
    static Statement stmt; 
    static Connection con; 
    public static void main(String args[]){ 
     JOptionPane.showMessageDialog(null,"JDBC Programming showing Creation of Table's"); 
     int choice = -1; 

     do{ 
      choice = getChoice(); 
      if (choice != 0){ 
       getSelected(choice); 
      } 
     } 
     while (choice != 0); 
      System.exit(0); 
    } 

    public static int getChoice() 
    { 
     String choice; 
     int ch; 
     choice = JOptionPane.showInputDialog(null, 
      "1. Create Employees Table\n"+ 
      "2. Create Products Table\n"+ 
      "0. Exit\n\n"+ 
      "Enter your choice"); 
     ch = Integer.parseInt(choice); 
     return ch; 

    } 

    public static void getSelected(int choice){ 
     if(choice==1){ 
      createEmployees(); 
     } 
     if(choice==2){ 
      createOrders(); 
     } 
    } 

    public static Connection getConnection() 
    { 



     try { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //Class.forName("myDriver.ClassName"); ? 


     } catch(java.lang.ClassNotFoundException e) { 
      System.err.print("ClassNotFoundException: "); 
      System.err.println(e.getMessage()); 
     } 

     try { 
      con = DriverManager.getConnection(url, 
       userid, password); 

     } catch(SQLException ex) { 
      System.err.println("SQLException: " + ex.getMessage()); 
     } 

     return con; 
    } 

    /*CREATE TABLE Employees (
      Employee_ID INTEGER, 
      Name VARCHAR(30) 
     );*/ 
    public static void createEmployees() 
    { 
     Connection con = getConnection(); 

     String createString; 
     createString = "create table Employees (" + 
          "Employee_ID INTEGER, " + 
          "Name VARCHAR(30))"; 
     try { 
      stmt = con.createStatement(); 
      stmt.executeUpdate(createString); 
      stmt.close(); 
      con.close(); 

     } catch(SQLException ex) { 
      System.err.println("SQLException: " + ex.getMessage()); 
     }JOptionPane.showMessageDialog(null,"Employees Table Created"); 
    } 

    /*CREATE TABLE Orders (
      Prod_ID INTEGER, 
      ProductName VARCHAR(20), 
      Employee_ID INTEGER 
     );*/ 

    public static void createOrders() 
    { 
     Connection con = getConnection(); 

     String createString; 
     createString = "create table Orders (" + 
          "Prod_ID INTEGER, " + 
          "ProductName VARCHAR(20), "+ 
          "Employee_ID INTEGER)"; 


     try { 
      stmt = con.createStatement(); 
      stmt.executeUpdate(createString); 

      stmt.close(); 
      con.close(); 

     } catch(SQLException ex) { 
      System.err.println("SQLException: " + ex.getMessage()); 
     } 
     JOptionPane.showMessageDialog(null,"Orders Table Created"); 
    } 

當我執行我發現這個控制檯

ConnectionProperties> 
<PropertyCategory name="Connection/Authentication"> 
    <Property name="user" required="No" default="" sortOrder="-2147483647" since="all versions"> 
    The user to connect as 
    </Property> 
    <Property name="password" required="No" default="" sortOrder="-2147483646" since="all versions"> 
    The password to use when connecting 
    </Property> 

上真的,我不知道在那裏我有錯。請幫助

回答

2

使用MySQL連接器/ J,你應該

Class.forName("com.mysql.jdbc.Driver"); 

更換線

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 

如果您還沒有這樣做的話,你還需要確保MySQL Connector/J jar有一個類似於mysql-connector-java-5.1.18-bin.jar的名稱,它位於您項目的構建路徑上,否則您將得到一個ClassNotFoundException。