java - 使用 mysql-connector-java-5.1.24 将 Java 连接到 MySQL

标签 java mysql windows jdbc

我正在通读 JDBC API 教程和引用 3/E(MAN,多么枯燥的大部头),但我在使用 Oracle 提供的 MySQL 连接器将我的 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

我正在尝试连接到名为“Coffee”的数据库。它肯定存在:

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";

因为咖啡是数据库而不是端口。

我想我需要更多。感谢所有提供帮助的人。

最佳答案

您的连接 URL 使用 coffee 作为端口。你应该使用类似的东西:

jdbc:mysql://127.0.0.1:3306/coffee

关于java - 使用 mysql-connector-java-5.1.24 将 Java 连接到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15672759/

相关文章:

java - 抽屉导航需要时间打开和关闭

java - 如何在新线程中返回值?

mysql - 如何确定字段/列是否受 UPDATE 语句影响

线程 "WindowsNativeRunloopThread"java.lang.NoSuchMethodError : <init> 中的 JavaFX 异常

java - 为什么 RandomAccessFile 采用字符串而不是枚举作为 "mode"参数?

java - 如何强制我的 JVM 进程始终占用 x GB 内存?

phpmyadmin 带有外来字符的 csv 导入无法正常工作

php - mysql ,删除后,最后插入的行正好位于已删除行的位置

Windows 位图 : BITMAPV5HEADER and BITMAPINFO compatible?

c - 如何显示来自驱动程序的弹出消息框(内核模式)?