代码如下:
DAOBase类:
package DAO;import java.sql.Connection;
import java.sql.SQLException;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletContext;
import javax.sql.DataSource;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import exception.DaoException;public class DAOBase {
public DataSource datasource;public Connection getConnection() throws DaoException{
ServletContext servletContext = ServletActionContext.getServletContext();
datasource = (DataSource) servletContext.getAttribute("dataSource");
Connection connection = null;
if(datasource != null){
try {
connection = datasource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return connection;}}DepartmentDAO 类,继承自:DAOBase
package DAO;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;import javax.sql.DataSource;import exception.DaoException;public class DepartmentDAO extends DAOBase {public static String SEARCH_ALL_DEPARTMENT = "SELECT * FROM departmentinfo";public HashMap<Integer,String> getDepartmentInfo() throws DaoException{
Connection connection = null;
PreparedStatement pStatement = null;
HashMap<Integer,String> depaMap = new HashMap<Integer,String>();
int depId = 0;
String depName = null;try {
connection = this.getConnection();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
pStatement = connection.prepareStatement(SEARCH_ALL_DEPARTMENT);
ResultSet resultSet = pStatement.executeQuery();
while(resultSet.next()){
depId = resultSet.getInt(1);
depName = resultSet.getString(2);
depaMap.put(depId, depName);
pStatement.close();
pStatement.close();}} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return depaMap;}}
当我 DepartmentDAO dd = new DepartmentDAO();
dd.getDepartmentInfo();
的时候抛空指针异常,异常位置
datasource = (DataSource) servletContext.getAttribute("dataSource");connection = this.getConnection();请教问题出在哪?如何解决?我应该补充哪些知识点以避免下次犯类似错误?
先谢过!
DAOBase类:
package DAO;import java.sql.Connection;
import java.sql.SQLException;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletContext;
import javax.sql.DataSource;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import exception.DaoException;public class DAOBase {
public DataSource datasource;public Connection getConnection() throws DaoException{
ServletContext servletContext = ServletActionContext.getServletContext();
datasource = (DataSource) servletContext.getAttribute("dataSource");
Connection connection = null;
if(datasource != null){
try {
connection = datasource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return connection;}}DepartmentDAO 类,继承自:DAOBase
package DAO;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;import javax.sql.DataSource;import exception.DaoException;public class DepartmentDAO extends DAOBase {public static String SEARCH_ALL_DEPARTMENT = "SELECT * FROM departmentinfo";public HashMap<Integer,String> getDepartmentInfo() throws DaoException{
Connection connection = null;
PreparedStatement pStatement = null;
HashMap<Integer,String> depaMap = new HashMap<Integer,String>();
int depId = 0;
String depName = null;try {
connection = this.getConnection();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
pStatement = connection.prepareStatement(SEARCH_ALL_DEPARTMENT);
ResultSet resultSet = pStatement.executeQuery();
while(resultSet.next()){
depId = resultSet.getInt(1);
depName = resultSet.getString(2);
depaMap.put(depId, depName);
pStatement.close();
pStatement.close();}} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return depaMap;}}
当我 DepartmentDAO dd = new DepartmentDAO();
dd.getDepartmentInfo();
的时候抛空指针异常,异常位置
datasource = (DataSource) servletContext.getAttribute("dataSource");connection = this.getConnection();请教问题出在哪?如何解决?我应该补充哪些知识点以避免下次犯类似错误?
先谢过!
解决方案 »
- 有两种对数据库的操作,不知道用sql还是存储过程好?
- 上传文件
- weblogic 8.1安装配置好以后,启动服务器时,出现异常
- 求chinaren社区技术解决方案
- dhtmlgrid与struts2!!!!!急 !!急!!!!
- 高手帮帮忙啊
- json 用ajax提交给 action 后台获取不到该对象
- 打开新的窗口引入参数问题。。急。。
- JSTL
- myeclipse里面导入别人的项目,无法在JSP页面显示自己在images添加的图片
- java调用c#开发的webservice为什么传入的参数为空
- [c3p0] Exceptions occurred while trying to close a PooledConnection's resources
datasource = (DataSource) servletContext.getAttribute("dataSource");
这个不对吧,应该是上面的servletContext