黑马程序员技术交流社区
标题:
配置文件怎会读不到
[打印本页]
作者:
柳雷
时间:
2012-7-26 14:12
标题:
配置文件怎会读不到
本帖最后由 柳雷 于 2012-7-26 16:24 编辑
public class JDBCUtil {
private static String driver = "";
private static String url = "";
private static String dbUser = "";
private static String dbPassword = "";
public static void getParam(){
String filename = "src/database.properties";
File file = new File(filename);
try {
FileInputStream fis = new FileInputStream(file);
Properties props = new Properties();
props.load(fis);
driver = props.getProperty("driver");
url = props.getProperty("url");
dbUser = props.getProperty("dbUser");
dbPassword = props.getProperty("dbPassword");
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
getParam();
Connection conn = null;
try{
Class.forName(driver);
conn = DriverManager.getConnection(
url,dbUser,dbPassword);
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
Connection conn = JDBCUtils.getConnection();
System.out.println("连接:"+conn);
}
}
模仿别人写了个JDBC的工具类,获取连接。本身这个工具类没有问题,执行main方法结果如下:
连接:com.mysql.jdbc.Connection@1808199
但是我发布服务到web项目上,却出错了
servlet关键代码如下:
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
UserDao userDao = new UserDao();
String errorInfo = "";
String loginName = request.getParameter("loginName");
String password = request.getParameter("password");
User user = userDao.selectUserByName(loginName);
dao代码如下:
public User selectUserByName(String name){
User user = null;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "select * from user where name = ?";
try {
conn = JDBCUtil.getConnection();
System.out.println("#########获取连接:"+conn);
ps = conn.prepareStatement(sql);
报错如下:
java.io.FileNotFoundException: src\database.properties (系统找不到指定的路径。)
#########获取连接:null
意思是取不到路径,是不是因为发布到tomcat服务器,所以src/database.properties就取不到了?我应该怎么写呢?怎么才能取到这个配置文件中的内容呢?
作者:
刘健
时间:
2012-7-26 15:51
发布成为WEB项目,一般来说路径有两种:页面上用来连接的basepath和文件的classpath。src是不用写的或者试试../这个前缀
作者:
黑马高明辉
时间:
2012-7-26 16:00
本帖最后由 黑马高明辉 于 2012-7-26 16:44 编辑
配置文件一般都放在src目录下,在bin下也有一份,所以通过classloader来读取呗。
做了个实验,效果出来了。先看看代码:
import java.io.InputStream;
import java.util.Properties;
public class LoadSRCFile {
/**
* @param args
*/
public static void main(String[] args) {
try {
System.out.println( getSrcFile() );
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getSrcFile() throws Exception{
InputStream ips = LoadSRCFile.class.getResourceAsStream("/config.properties");
Properties props = new Properties();
props.load(ips);
return props.getProperty("gmh");
}
}
------------------------config.properties文件内容。
gmh=from config
---------------------------------运行结果:
from config
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2