之前我没有使用过JDBC。我希望我的程序在每次用户启动程序时都存储来自用户的信息。可以看到以前的活动,所以我必须使用数据库,对吗?
所以我想使用JDBC但是我遇到了一些问题。
import java.sql.* ;
public class Database {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/";
// Database credentials
static final String USER = "username";
static final String PASS = "password";
public Database(){
Connection con = null;
Statement stmt = null;
try{
Class.forName(JDBC_DRIVER);
}catch(Exception e){
e.printStackTrace();
System.exit(1);
}
try{
con = DriverManager.getConnection(DB_URL, USER, PASS);
}catch(Exception e){
e.printStackTrace();
System.exit(1);
}
}
}
错误:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通讯链接失败
引起:java.net.ConnectException:拒绝连接
答案 0 :(得分:0)
两件事:
默认的MySQL用户是root
,密码将是您在安装和配置时设置的密码。大多数开发人员也使用root
。
static final String DB_URL = "jdbc:mysql://localhost/";
您还没有提到要连接的数据库的名称以及此字符串中的端口号,这将是您猜测的真正问题。
static final String DB_URL = "jdbc:mysql://localhost:3306/YOUR_DATABASE_NAME";
MySQL的默认端口号为3306
要从程序创建数据库,您需要运行以下命令:
Statement stmt = con.createStatement();
stmt.executeUpdate("create database DB_NAME");
答案 1 :(得分:0)
static final String DB_URL = "jdbc:mysql://localhost/DB_Name";
USER = "root";
PASSWORD= "";
默认凭据是" root"和""对于每个人,您可以从phpMyAdmin导出您的数据库。您有一个名为" Export"的按钮。并且您可以将该文件传递给您的朋友
答案 2 :(得分:0)
static final String DB_URL = "jdbc:mysql://localhost/";
DB_URL中的数据库名称和端口在哪里? 请更改如下,让我们再次告知状态?
static final String DB_URL = "jdbc:mysql://localhost/3306/yourdb";
这是使用JDBC连接MySQL的最佳示例。 http://www.mkyong.com/jdbc/how-to-connect-to-mysql-with-jdbc-driver-java/
答案 3 :(得分:0)
@tichu你的代码只会提到你的mysql的端口号并检查你的凭据是否正确。我已经运行您的程序,我的凭据和端口号代码在数据库创建时成功运行。只需找到以下代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* @author manoj.sharma
*/
public class Test{
/**
* @param args the command line arguments
*/
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/";
// Database credentials
static final String USER = "root";
static final String PASS = "";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
//STEP 4: Execute a query
System.out.println("Creating database...");
stmt = conn.createStatement();
String sql = "CREATE DATABASE STUDENTS";
stmt.executeUpdate(sql);
System.out.println("Database created successfully...");
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
}
答案 4 :(得分:0)
您正在获得此类异常,因为您的sql服务未运行且您正在尝试连接到sql。用户名/密码应该不是问题。