我安装了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的目的吗?
答案 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);
}
无论哪种方式,您都应该看到异常类型,消息和跟踪。在您的代码段中,可能的例外是ClassNotFoundException
和SQLException
。第一个意味着驱动程序未正确放置在类路径中。第二个意味着无法获得连接。异常消息和/或跟踪应该详细说明问题的根本原因。
你应该经常观察异常。他们讲述了问题的原因。你知道,一旦理解理解,解决方案就不过是明显的了:)
此外,
任何人都可以告诉我,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");