import java.sql.*;
import java.util.Properties;
import java.io.*;import com.microsoft.jdbc.sqlserver.SQLServerDriver;public class DBConnect
{
private static Connection conn = null;
private static Properties prop = new Properties();

public static Connection getConnection()
{
try
{
String driverClass = null;
/*-------------------------------------------------------
 *connectString.properties该文件内为一组键值对,
 *包含了 jdbcDriver,userName,password,jdbc url 等信息。
 *将该文件内容型成流,加载到prop中。
 *--------------------------------------------------------*/
************         prop.load(getClass().getResourceAsStream("connectstring.properties"));
/*------------------------
 *如果driverClass键存在于
 *prop中返回真
 *------------------------*/
if(prop.containsKey("driverClass"))
{
/*------------------------------
 *搜索prop中指定键param对应的值
 *------------------------------*/
driverClass=prop.getProperty(driverClass);
}
System.out.println("driverClass");
Class.forName(driverClass);

String url = prop.getProperty(url);
String userName = prop.getProperty(userName);
String passWord = prop.getProperty(passWord);
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433,userName,passWord");
}
catch(ClassNotFoundException ex)
{
ex.printStackTrace();
}编译时在我用 * 号标记的那行出现错误:
non-static method getClass() cannot be breferenced from a static context
prop.load(getClass().getResourceAsStream("connectstring.properties"));

解决方案 »

  1.   

    在connectstring.properties文件里放着连接数据库的 url奇怪的是:上学时曾经写过相似的代码,现在可以编译通过.代码如下:
    import java.util.Properties;
    import java.io.*;
    public class ConnectParameterMgr
    {
    /*-----默认构造的本类对象 cpm-------*/
    private static ConnectParameterMgr cpm = new ConnectParameterMgr();
    /*------键值对集合------*/
    private static Properties prop = new Properties();
    public String  getConnectParams() throws Exception 
    {
    String str="";
    try
    {
    ********     prop.load(getClass().getResourceAsStream("connectstring.properties");     if(prop.containsKey("driverClass"))
                          {
                        str=prop.getProperty(param);
              }
    }
    catch(Exception ex)
    {
                System.out.println(str);
    ex.printStackTrace();
    }
                      return str;
    }
    请大家帮我看看那里出了问题谢谢
      

  2.   

    改成这样:
    prop.load(DBConnect.class.getResourceAsStream("connectstring.properties"));
      

  3.   

    yuzl32(Hello!有酒醉)  不行啊!!!!!!!D:\WORKROOM\afu\DBConnect.java:24: unreported exception java.io.IOException; must be caught or declared to be thrown
    prop.load(DBConnect.class.getResourceAsStream("connectstring.properties"));
        ^
      

  4.   

    try
    {
    prop.load(DBConnect.class.getResourceAsStream("connectstring.properties"));
    }catch (IOException e)
    {
      e.printStackTrace();
    }程序要求你捕获可能发生的异常,你捕获就是了.
      

  5.   

    晕,不需要单独捕获,你直接添加个catch捕获IOException 异常就行了,上面只是做个示例