我是JDBC新手,我正在尝试建立与MySQL数据库的连接。
我正在使用Connector / J驱动程序,但我找不到我的Class.forName()
方法的JDBC连接字符串。
答案 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)
这很简单:
jdbc:mysql://<hostname>:<port>/<dbname>?prop1
等
其中<hostname>
和<port>
在连接选项卡中给出。它主要是localhost:3306。<dbname>
将在Windows服务名称的“系统配置文件”选项卡下找到。默认值主要是MySQL5 <x>
,其中x是版本号,例如。 MySQL5.6为56,MySQL5.5为55等。您也可以指定自己的Windows服务名称进行连接。答案 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)的官方链接:
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