如何将MySQL连接到Java程序

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

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

任何人都可以告诉我,wat是指下面的URL吗?

 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的目的吗?

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

以下是您的代码摘录:

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

只要您不了解exception,就不应该禁止exception。 至少替换它:

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

或者可能

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

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

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

也可以看看:

  • 简短的MySQL / JDBC教程 – 包含有关exception原因的说明。

进一步,

任何人都可以告诉我,wat是指下面的URL吗?

URL是统一资源定位符 。 这是在计算机系统和网络中定位(识别)独特资源的常用方法。 JDBC数据库的URL语法在JDBC驱动程序的文档中进行了解释。

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

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

如果是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"); 

有关详细信息,请参阅此步骤以开始使用Microsoft JDBC。

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

  • Microsoft SQL Server JDBC驱动程序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。

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

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