Mysql连接器j错误

时间:2012-03-31 08:04:28

标签: java mysql connector

我是java的新手。我在java上做一个程序,在eclipse上实现连接器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>

真的,我不知道我错在哪里。请帮忙

1 个答案:

答案 0 :(得分:2)

要使用MySQL Connector / J,您应该替换

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

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

如果你还没有这样做,你还需要确保MySQL Connector / J jar,其名称类似于mysql-connector-java-5.1.18-bin.jar,位于项目的构建路径上,否则你将会得到一个ClassNotFoundException。