servlet访问数据库的一点问题
一个小项目实验 练习servlet的使用
创建了一个连接数据库的属性文件jdbc.properties
内容如下
#driver-class
driverclass=com.microsoft.sqlserver.jdbc.SQLServerDriver
#MSSQL
url=jdbc:sqlserver://localhost:1433;databaseName=company
password=sa
username=sa
在数据访问层里 写了一个通用类CommonDao
public class CommonDao {
private static Logger logger = Logger.getLogger(CommonDao.class.getName());
// 得到 Connection 之前要初始化的数据
private static String url;
private static String password;
private static String username;
private static String driverClass;
///////////////////////////////////////////////////////////////////
private static Connection conn;
static {
Properties p = new Properties();
try {
p.load(new FileInputStream(new File(
"WebRoot/WEB-INF/jdbc.properties")));
} catch (IOException e) {
logger.error("jdbc文件读取错误! "+e.getMessage());
}
// 初始化数据
url = p.getProperty("url");
username = p.getProperty("username");
password = p.getProperty("password");
driverClass = p.getProperty("driverclass");
// 初始化数据 结束
}
public static Connection getConn() {
try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
return conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
logger.error(e.getMessage());
return null;
}
}
用一个main函数测试的时候 可以连接并且能够读取数据, 但是当用servlet调用dao层的具体方法时候就不能获得连接了。希望有人能帮忙分析一下 谢谢了 servlet的配置是正确的
测试main函数
public static void main(String[] args) {
List<Product> list=null;
ProductDao biz=new ProductDaoImpl();
list=biz.findAllProducts();
for(int i=0;i<list.size();i++)
{
Product product=(Product)list.get(i);
System.out.println(product.getName());
}
}
servlet内容如下
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
ProductDao biz=new ProductDaoImpl();
List<Product> list=biz.findAllProducts();
HttpSession session=request.getSession();
session.setAttribute("list", list);
response.sendRedirect("showProductList.jsp");
}