如何将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是ClassNotFoundException
和SQLException
。 第一个意味着驱动程序未正确放置在类路径中。 第二个意味着无法获得连接。 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");