如何将 MySQL 连接到 Java 程序

Posted

技术标签:

【中文标题】如何将 MySQL 连接到 Java 程序【英文标题】:How to connect MySQL to Java program 【发布时间】:2011-03-23 13:44:38 【问题描述】:

我已经安装了 mysql(上次更新)。 我需要编写代码,它将创建并建立与 SQL DB 的连接 & 管理数据库(使用 SELECT、INSERT、CREATE)。

我做了一切,但是我无法创建连接。我还安装了 MySQL/J 连接器,我只是将 .zip 包提取到一个文件夹中,并在 Variables 中添加了文件夹路径。

谁能告诉我下一行中的 URL 是指 wat 吗?

Connection connection = DriverManager.getConnection(url, username, password);

我试过这个:

String url = "jdbc:odbc:sqlserver://localhost:3306/myfirstdb";
Connection con = DriverManager.getConnection(url, "root", "1234");

但它不起作用。我无法理解“URL”一词。 谁能解释一下,'url'和wat的含义应该通过Java连接到SQL服务器。


更新:

这是完整的代码。它仍然无法连接。

import java.sql.*;

public class TestDriver 

public static void main(String[] args) 
try 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//This s wat actually i did for connection
    System.out.println("Driver Loaded Succesfully");

catch (Exception e)
    System.out.println("Unable to Load Driver!!!");


try 
    Class.forName(com.mysql.jdbc.Driver");  // initialise the driver
    String url ="jdbc:mysql://localhost:3306/myfirstdb";
    Connection con = DriverManager.getConnection(url, "root", "1234");
    System.out.println("connection Established");
    
    catch(Exception e) 
                System.out.println("Couldnt get connection");
    
    

你能告诉我 MySQL Connector/J 的用途是什么吗?

【问题讨论】:

@Zaki, @Tamil Vendhan has stated below 正在使用 MySql。我已将 mysql 标签添加到问题中。 Java connectivity with MySQL的可能重复 【参考方案1】:

在问题中,您似乎正在使用带有 SQL Server jdbc URL 的 MySQL jdbc 驱动程序。这行不通。

如果您使用的是MySQL 数据库:

Class.forName("com.mysql.jdbc.Driver");  // initialise the driver

String url ="jdbc:mysql://localhost:3306/myfirstdb";

如果您使用的是 SQL Server 数据库,您将需要一个完全不同的 jdbc 驱动程序。 jTDS 是开源的,是一个不错的选择。在您的类路径中包含 jtds.jar 文件并使用如下内容:

Class.forName("net.sourceforge.jtds.jdbc.Driver");  // initialise the driver

String url = "jdbc:jtds:sqlserver://localhost:1433/myfirstdb";

【讨论】:

【参考方案2】:

如果是 MS SQL Server,

String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
Class.forName(driver);
String url = "jdbc:microsoft:sqlserver://host:1433/database";
Connection conn = DriverManager.getConnection(url, "username", "password");

有关详细信息,请参阅this 以开始使用 Microsoft JDBC。 您可以为 MSSQL 使用两种 JDBC 驱动程序中的任何一种:

Microsoft SQL Server JDBC Driver 2.0 jTDS

对于 MS SQL Server 驱动程序 2.0,使用

URL: jdbc:sqlserver://server:port; DatabaseName=dbname
Class name: com.microsoft.sqlserver.jdbc.SQLServerDriver

对于 MySql 和 Java,请参阅 SO 上的 this。

【讨论】:

【参考方案3】:

这是您代码的摘录:

 catch (Exception e) 
    System.out.println("Couldnt get connection");

只要您不了解其原因,就应该从不抑制异常。至少替换为:

 catch (Exception e) 
    System.out.println("Could not get connection");
    e.printStackTrace();

或许

 catch (Exception e) 
    throw new RuntimeException("Could not get connection", e);

无论哪种方式,您都应该看到异常类型、消息和跟踪。在您的代码 sn-p 中,可能的例外是 ClassNotFoundExceptionSQLException。第一个意味着驱动程序未正确放置在类路径中。第二个意味着无法获得连接。异常消息和/或跟踪应详细说明问题的根本原因。

您应该始终观察异常。他们讲述了问题的原因。要知道,一旦了解了原因,解决方案就显而易见了 :)

另见:

Short MySQL/JDBC tutorial - 包含有关异常原因的说明。

进一步,

谁能告诉我下一行中的 URL 是指 wat 吗?

网址是Uniform Resource Locator。这是在计算机系统和网络中定位(识别)独特资源的常用方法。 MySQL 数据库的 URL 语法在 documentation of the JDBC driver 中进行了说明。

你能告诉我 MySQL Connector/J 的用途是什么吗?

这是 JDBC 驱动程序。 JDBC API 几乎只存在于接口。 DB 供应商应提供自己的具体 JDBC API 实现,即 JDBC 驱动程序。借助 JDBC 驱动程序,您将能够使用 JDBC API 连接特定数据库。

【讨论】:

【参考方案4】:

你忘记了 Class.forName(com.mysql.jdbc.Driver"); 的 " 应该是

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

【讨论】:

这件事发生在 5 年前,伙计。无论如何,谢谢你的回答。 :-)

以上是关于如何将 MySQL 连接到 Java 程序的主要内容,如果未能解决你的问题,请参考以下文章

如何将 NetBeans 连接到 MySQL 数据库?

如何将 Android 应用程序连接到 MySQL 数据库? [复制]

如何通过管道将 PHP 应用程序连接到 MySQL?

如何将 android 应用程序连接到 MYSQL 服务器并从中检索数据?

如何从 Android 应用程序通过 JDBC 连接到远程 MySQL 服务器

如何使用 OTL ODBC 驱动程序将 C++ 连接到 MySQL?