MySQL JDBC驱动程序连接字符串是什么?


117

我是JDBC的新手,正在尝试与MySQL数据库建立连接。我正在使用Connector / J驱动程序,但找不到我的Class.forName()方法的JDBC连接字符串。


4
首先,Class.forName()不需要JDBC连接字符串,而是JDBC驱动程序类名称。
BalusC 2012年

Answers:


114

假设您的司机在路上,

String url = "jdbc:mysql://localhost/test";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, "username", "password");

1
如果不在环境变量中,如何找到jdbc路径?
罗伊·欣克利

1
在示例代码中,已对JDBC URL进行了硬编码,未在任何环境变量中进行搜索
Jaime Hablutzel 2014年

67

这里是文档:

https://dev.mysql.com/doc/connector-j/zh-CN/connector-j-reference-configuration-properties.html

基本的连接字符串如下所示:

jdbc:mysql://localhost:3306/dbname

您可以在class.forName字符串中找到“ com.mysql.jdbc.Driver”(编辑:现在在同一页面上)。


上面的链接不起作用。这里有一个新的工作环节:dev.mysql.com/doc/connector-j/en/...
hexicle

1
如果我有三个属性在连接字符串中使用,会怎么连接字符串的样子-如:useOldAliasMetadataBehavior=trueuseUnicode=truecharacterEncoding=UTF-8
N00B Pr0grammer

17
"jdbc:mysql://localhost"

来自oracle文档。

jdbc:mysql://[host][,failoverhost...]
[:port]/[database]
[?propertyName1][=propertyValue1]
[&propertyName2][=propertyValue2]

host:port是托管数据库的计算机的主机名和端口号。如果未指定,则host和port的默认值分别为127.0.0.1和3306。

database是要连接的数据库的名称。如果未指定,则建立没有默认数据库的连接。

故障转移是备用数据库的名称(MySQL Connector / J支持故障转移)。

propertyName = propertyValue表示一个可选的,与号分隔的属性列表。这些属性使您可以指示MySQL Connector / J执行各种任务。


如果我有三个属性在连接字符串中使用,会怎么连接字符串的样子-如:useOldAliasMetadataBehavior=trueuseUnicode=truecharacterEncoding=UTF-8
N00B Pr0grammer

@B Pavan Kumar这是一个URI,因此属性应以与号(“&”)分隔,如我引用的规范所示。
蒂姆·西尔维斯特

1
@ N00bPr0grammerjdbc:mysql://[host][:port]/[database]?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=UTF-8
ssc-hrep3 '16

5

这很简单:

  1. 转到MySQL工作台并查找“数据库”>“管理连接”
  2. 您将看到连接列表。单击您要连接的连接。
  3. 您将在连接,远程管理,系统配置文件周围看到一个选项卡。单击连接选项卡。
  4. 您的url jdbc:mysql://<hostname>:<port>/<dbname>?prop1等。在连接选项卡中的位置<hostname><port>位置。它通常是localhost:3306。将<dbname>在Windows服务名称的系统配置文件选项卡下找到。默认将主要是MySQL5 <x>,其中x是版本号,例如。对于MySQL5.6为56,对于MySQL5.5等为55。您也可以指定自己的Windows服务名称进行连接。
  5. 相应地构造URL,并将URL设置为connect。

5

对于Mysql,jdbc驱动程序连接字符串为com.mysql.jdbc.Driver。使用以下代码进行连接:

class DBConnection {
   private static Connection con = null;
   private static String USERNAME = "your_mysql_username";
   private static String PASSWORD = "your_mysql_password";
   private static String DRIVER = "com.mysql.jdbc.Driver";
   private static String URL = "jdbc:mysql://localhost:3306/database_name";

   public static Connection getDatabaseConnection(){
       Class.forName(DRIVER);
       return con = DriverManager.getConnection(URL,USERNAME,PASSWORD);
   }
}


2

由于答案似乎已经被回答,因此没有太多要添加,但是我想在现有答案中添加一件事。这是为MySQL的JDBC驱动程序加载类的方式

com.mysql.jdbc.Driver

但是,现在不建议这样做。现在是新的驱动程序类

com.mysql.cj.jdbc.Driver

另外,驱动程序通过SPI自动注册,通常不需要手动加载驱动程序类。


0
String url = "jdbc:mysql://localhost:3306/dbname";
String user = "user";
String pass = "pass";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, user, pass);

3306 是mysql的默认端口。

如果您使用的是Java 7,则甚至无需添加该Class.forName("com.mysql.jdbc.Driver").newInstance ();语句.JDBC 4.1中自动添加了自动资源管理(ARM),Java 7中默认提供该功能。

用于连接到MySQL服务器的JDBC URL的一般格式如下,方括号([])中的项目是可选的:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] »
[?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

0

协议// [主机] [/数据库] [?properties]

如果您没有任何属性,则忽略它,就像

jdbc:mysql://127.0.0.1:3306 / test

jdbc:mysql是协议127.0.0.1:是主机,3306是端口号test是数据库


0

这取决于您使用的服务。

如果您使用MySQL Workbench,它将有些像这样:

jdbc:mysql://“主机”:“端口号” /

String url = "jdbc:mysql://localhost:3306/";

当然,如果您使用SSL / SSH,它将有所不同。

有关更多信息,请访问Jetbriens的官方链接(intelliJ idea):

连接到数据库

https://www.jetbrains.com/help/idea/connecting-to-a-database.html


配置数据库连接

https://www.jetbrains.com/help/idea/configuring-database-connections.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.