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

时间:2009-09-22 01:33:39

标签: mysql jdbc connection-string

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

16 个答案:

答案 0 :(得分:105)

假设你的司机在路上,

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

答案 1 :(得分:61)

您是否阅读过文档?

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

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

jdbc:mysql://localhost:3306/dbname

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

答案 2 :(得分:14)

"jdbc:mysql://localhost"

来自oracle docs ..

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

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

数据库是要连接的数据库的名称。如果未指定,则建立连接而不使用默认数据库。

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

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

答案 3 :(得分:4)

这很简单:

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

答案 4 :(得分:3)

对于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);
   }
}

答案 5 :(得分:2)

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

com.mysql.jdbc.Driver

但是现在不建议使用。现在是新的驱动程序类

com.mysql.cj.jdbc.Driver

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

答案 6 :(得分:1)

针对mySQL 8的更新:

字符串jdbcUrl =“ jdbc:mysql:// localhost:3306 / youdatabase?useSSL = false&serverTimezone = UTC”;

使用以下代码片段检查您的Jdbc配置和URL是否正确。

ArrayList

答案 7 :(得分:1)

方法Class.forName()用于注册JDBC驱动程序。连接字符串用于检索与数据库的连接。

检索数据库连接的方法如下所示。理想情况下,由于您不想创建与数据库的多个连接,因此将连接限制为一个并重新使用同一连接。因此,在处理与数据库的连接时,请在此处使用单例模式。

下面显示了一个带有检索连接的连接字符串:

public class Database {
   
    private String URL = "jdbc:mysql://localhost:3306/your_db_name"; //database url
    private String username = ""; //database username
    private String password = ""; //database password
    private static Database theDatabase = new Database(); 
    private Connection theConnection;
    
    private Database(){
        try{
              Class.forName("com.mysql.jdbc.Driver"); //setting classname of JDBC Driver
              this.theConnection = DriverManager.getConnection(URL, username, password);
        } catch(Exception ex){
            System.out.println("Error Connecting to Database: "+ex);
        }
    }

    public static Database getDatabaseInstance(){
        return theDatabase;
    }
    
    public Connection getTheConnectionObject(){
        return theConnection;
    }
}

答案 8 :(得分:1)

这是我这边的一些代码:)

需要的驱动程序:

com.mysql.jdbc.Driver

下载:here(独立于平台)

一行连接字符串:

jdbc:mysql://localhost:3306/db-name?user=user_name&password=db_password&useSSL=false

示例代码:

public static void testDB(){
    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    try {
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/db-name?user=user_name&password=db_password&useSSL=false");
        if (connection != null) {
            Statement statement = connection.createStatement();
            if (statement != null) {
                ResultSet resultSet = statement.executeQuery("select * from test");
                if (resultSet != null) {
                    ResultSetMetaData meta = resultSet.getMetaData();
                    int length = meta.getColumnCount();
                    while(resultSet.next())
                    {
                        for(int i = 1; i <= length; i++){
                            System.out.println(meta.getColumnName(i) + ": " + resultSet.getString(meta.getColumnName(i)));
                        }
                    }
                    resultSet.close();
                }
                statement.close();
            }
            connection.close();
        }
    } catch (Throwable throwable) {
        throwable.printStackTrace();
    }
}

答案 9 :(得分: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 ();语句。在Java 4.1中添加了自动资源管理(ARM),默认情况下在Java 7中提供。

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

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

答案 10 :(得分:0)

协议// [主机] [/数据库] [?性质]

如果你没有任何属性忽略它,那就像

jdbc:mysql://127.0.0.1:3306 / test

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

答案 11 :(得分:0)

就我而言->

            Class.forName("com.mysql.jdbc.Driver");
            Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mini", "/*USERNAME*/", "/*PASSWORD*/);

答案 12 :(得分:0)

Connection conn = null;   
//default -root   
String userName = "mysqlusername";
String password = "yourpassword";
String url = "jdbc:mysql://hostname/databasename";         
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, userName, password);
conn.close(); 

答案 13 :(得分:0)

mySQL 8更新 字符串jdbcUrl =“ jdbc:mysql:// localhost:3306 / youdatabase?useSSL = false&serverTimezone = UTC”;

答案 14 :(得分:0)

这取决于您使用的服务。

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

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

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

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

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

Connecting to a database #

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


Configuring database connections #

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

答案 15 :(得分:0)

检查Driver Connector jar是否与SQL版本匹配。

我也遇到了与使用

相同的错误

mySQl-connector-java-5.1.30.jar

使用MySql 8