从*.properties文件加载信息到Properties prop对象里时出了问题???大虾帮帮忙

adaoke_captain 2006-02-28 12:49:35
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"));
...全文
184 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuzl32 2006-02-28
  • 打赏
  • 举报
回复
晕,不需要单独捕获,你直接添加个catch捕获IOException 异常就行了,上面只是做个示例
adaoke_captain 2006-02-28
  • 打赏
  • 举报
回复
原来它要单独扑获啊
yuzl32 2006-02-28
  • 打赏
  • 举报
回复
try
{
prop.load(DBConnect.class.getResourceAsStream("connectstring.properties"));
}catch (IOException e)
{
e.printStackTrace();
}

程序要求你捕获可能发生的异常,你捕获就是了.
adaoke_captain 2006-02-28
  • 打赏
  • 举报
回复
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"));
^
scottwhb 2006-02-28
  • 打赏
  • 举报
回复
同意楼上,静态方法中使用非静态方法是不对的
yuzl32 2006-02-28
  • 打赏
  • 举报
回复
静态方法中使用非静态方法是不对的,如果一定要使用的话,必须先建立一个对象,然后再引用它的方法
yuzl32 2006-02-28
  • 打赏
  • 举报
回复
改成这样:
prop.load(DBConnect.class.getResourceAsStream("connectstring.properties"));
adaoke_captain 2006-02-28
  • 打赏
  • 举报
回复
分不够再给
adaoke_captain 2006-02-28
  • 打赏
  • 举报
回复
在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;
}
请大家帮我看看那里出了问题谢谢

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧