如何将MySQL连接到Java程序

时间:2010-07-31 06:49:22

标签: java mysql jdbc connection

我安装了MySQL(上次更新)。 我需要编码,然后创建&与SQL DB建立连接 &安培;管理数据库(使用SELECT,INSERT,CREATE)。

我做了一切,但是,我无法创建连接。我还安装了MySQL / J连接器,我刚刚将.zip包解压缩到一个文件夹&在变量中添加了文件夹路径。

任何人都可以告诉我,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");
    }
    }
}

你能告诉我wat是MySQL Connector / J的目的吗?

4 个答案:

答案 0 :(得分:4)

在这个问题中,您似乎使用带有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";

答案 1 :(得分: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);
}

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

你应该经常观察异常。他们讲述了问题的原因。你知道,一旦理解理解,解决方案就不过是明显的了:)

另见:


此外,

  

任何人都可以告诉我,wat是指下面一行的网址吗?

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

中进行了解释
  

你能告诉我wat是MySQL Connector / J的目的吗?

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

答案 2 :(得分: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。

您可以将两个JDBC驱动程序中的任何一个用于MSSQL:

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

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

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

答案 3 :(得分:0)

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

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