如何将 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 中,可能的例外是 ClassNotFoundException
和 SQLException
。第一个意味着驱动程序未正确放置在类路径中。第二个意味着无法获得连接。异常消息和/或跟踪应详细说明问题的根本原因。
您应该始终观察异常。他们讲述了问题的原因。要知道,一旦了解了原因,解决方案就显而易见了 :)
另见:
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 程序的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Android 应用程序连接到 MySQL 数据库? [复制]
如何将 android 应用程序连接到 MYSQL 服务器并从中检索数据?