程序如下
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;import org.ld.read.readProperties; public static void main(String[] args) {
Connection con = null;

readProperties rp = new readProperties();
Properties properties = rp.getProperties("mysql.properties");

String driver = properties.getProperty("driver");
String url = properties.getProperty("url");
String username = properties.getProperty("username");
String password = properties.getProperty("password");

try {
Class.forName(driver);
con = DriverManager.getConnection(url,username,password);
} catch (Exception e) {

System.out.println("创建数据库连接失败");
e.printStackTrace();
} }
}mysql.properties文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3006/test
username=root
password=ldreadProperties.java
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;public class readProperties {
public Properties getProperties(String filepath)
{
InputStream in = this.getClass().getClassLoader().getResourceAsStream(filepath);

Properties properties = new Properties();

try {
properties.load(in);
} catch (IOException e) {
System.out.println("读取Properties文件错误");
e.printStackTrace();
}

return properties;
}
}如果我不从mysql.properties中读取配置文件,直接写出配置文件内容就不报错,配置文件的内容可以读出来,这个可以肯定不是配置文件读取的错误。
以下是错误信息创建数据库连接失败
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.net.ConnectException
MESSAGE: Connection refused: connectSTACKTRACE:java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test.main(test.java:26)
** END NESTED EXCEPTION **Last packet sent to the server was 0 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2847)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test.main(test.java:26)

解决方案 »

  1.   

    你确定你已经把文件里的容 写到Properties 这个类里边了么
      

  2.   

    lz
    我现在还没有配置好java环境
    不能调试,但是我觉得你创建这个类readProperties,有点别扭啊,这个类只有一个方法,即使健也要设计成接口啊,不过这么一个方法,针对这个问题我觉得整个静态方法比较好
      

  3.   

    建议楼主在main方法中,
    用Systen.out.println(url);
    Systen.out.println(username);
    Systen.out.println(password);
    看一下输出的数据是否正确,
    然后再数据库驱动程序包导入没,数据服务库是否启动
      

  4.   

    会不会是系统当前没有MySql的实例在运行状态?
      

  5.   

    是不是密码中Id中的"i"写成大写了
      

  6.   

    应该是没有读到文件,你用System.out.println();打印看一下。
      

  7.   

    只能System一行一行测啊,注意有没有多余空格啊