2013-03-28 35 views
0

我正在阅读JDBC API教程和参考3/E(MAN,干什么),而且我无法连接我的Java程序到我的MySQL数据库使用Oracle提供的MySQL连接器。使用mysql-connector-java-5.1.24连接Java到MySQL

我已经把它放在我的文件夹

C:\Windows\Sun\Java\mysql-connector-java-5.1.24 

中,我已经指出在JGrasp我的工作区CLASSPATH以

C:\Windows\Sun\Java\mysql-connector-java-5.1.24\mysql-connector-java-5.1.24-bin.jar 

我试图连接到一个名为“咖啡数据库。 “它绝对存在:

mysql> show databases; 
+---------------------+ 
| Database   | 
+---------------------+ 
| information_schema | 
| coffee    | 
| mysql    | 
| performance_schema | 
| phpmyadmin   | 
+---------------------+ 
5 rows in set (0.03 sec) 

这是我的Java代码。 (如果你有这本书,我是第88页我的代码和他们之间唯一的区别是一些意见,而且我与MySQL去。)

//first, import sql package 
import java.sql.*; 

//name class CreateCoffees 
public class CreateCoffees { 

    public static void main(String[] args){ 

     String url = "jdbc:mysql://127.0.0.1:coffee"; 

     //declare variables 
     Connection conn; 

     String createString = "create table COFFEES " + 
             "(COF_NAME varchar(32), " + 
             "SUP_ID int, " + 
             "PRICE float, " + 
             "SALES int, " + 
             "TOTAL int)"; 

     Statement stmt; 


     //instructions 
     try{ 
      Class.forName("com.mysql.jdbc.Driver"); 
     } 
     catch(java.lang.ClassNotFoundException cnfe){ 
      System.out.println("Class Not Found - " + cnfe.getMessage()); 
     }  

     try{ 
      conn = DriverManager.getConnection(url, "root", ""); 

      stmt = conn.createStatement(); 

      stmt.executeUpdate(createString); 

      stmt.close(); 
      conn.close(); 
     } 
     catch(SQLException sqle){ 
      System.out.println("SQL Exception: " + sqle.getMessage()); 
     } 

    } 

} 

一切编译得很好,但是当我运行它,我抛出以下SQLException:

SQL Exception: Cannot load connection class because of underlying exception: 'java.lang.NumberFormatException: For input string: "coffee"'. 

我究竟做错了什么?有什么我可以运行,否则测试Java和数据库之间的连接?我对两者都很陌生。

另外,应该指出,这不是作业。

编辑:这似乎是问题的代码行是

String url = "jdbc:mysql://127.0.0.1:coffee"; 

而且由于咖啡是一个数据库,而不是一个端口改为

String url = "jdbc:mysql://127.0.0.1/coffee"; 

我想我需要更多它。感谢所有帮助过我的人。

回答

1

为什么你有“咖啡”作为你的端口号?你应该有有你的MySQL服务器端口号

jdbc:mysql://127.0.0.1:coffee 

提示:默认端口号为3306。因此,尝试

jdbc:mysql://127.0.0.1:3306/coffee 

(假设你的数据库名称是咖啡)

+0

的确。我已更新OP以反映您的准确信息。谢谢。 – novalsi 2013-03-28 01:57:44

2

你的连接网址使用coffee作为端口。你应该使用类似:

jdbc:mysql://127.0.0.1:3306/coffee 
1

我觉得解析器感到困惑,并认为coffee是端口号。

试试这个:

jdbc:mysql://127.0.0.1/coffee