運行一個web專案,在登錄界面輸入用戶名和密碼后,點擊登錄,出現如下錯誤。
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
dao.CommDAO.select(CommDAO.java:584)
control.MainCtrl.doPost(MainCtrl.java:173)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
util.SetChar.doFilter(SetChar.java:31)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
--------------------------------------------------------------------------------
Apache Tomcat/6.0.13
請問大神們!這是什么原因……?急!
uj5u.com熱心網友回復:
java.lang.NullPointerException 空指標 你dao定義 賦值了沒 列印下 懷疑你dao是nulluj5u.com熱心網友回復:
public CommDAO(){
conn = this.getConn();
}
public Connection getConn()
{
try
{
if(conn==null||conn.isClosed()){
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/zuowei","root","welcome");
}}
catch(Exception e)
{
e.printStackTrace();
}
return conn;
}
請問是這個嗎?
uj5u.com熱心網友回復:
dao.CommDAO.select(CommDAO.java:584)的代碼粘出來?uj5u.com熱心網友回復:
大概是這兩個
public List<HashMap> select(String sql)
{
System.out.println(sql);
List<HashMap> list = new ArrayList();
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while(rs.next())
{
HashMap map = new HashMap();
int i = rsmd.getColumnCount();
for(int j=1;j<=i;j++)
{
if(!rsmd.getColumnName(j).equals("ID"))
{
String str = rs.getString(j)==null?"": rs.getString(j);
if("null".equals(str))str = "";
map.put(rsmd.getColumnName(j), str);
}
else
map.put("id", rs.getString(j));
}
list.add(map);
}
rs.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
if(sql.equals("show tables"))
list = select("select table_name from INFORMATION_SCHEMA.tables");
else
e.printStackTrace();
}
return list;
}
public List<HashMap> select(String sql, int pageno, int rowsize) {
List<HashMap> list=new ArrayList<HashMap>();
List<HashMap> mlist=new ArrayList<HashMap>();
try{
list=this.select(sql);
int min = (pageno-1)*rowsize;
int max = pageno*rowsize;
for(int i=0;i<list.size();i++)
{
if(!(i<min||i>(max-1)))
{
mlist.add(list.get(i));
}
}
}catch(RuntimeException re){
re.printStackTrace();
throw re;
}
return mlist;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/84852.html
標籤:非技術區
下一篇:The method getConnection() is undefined for the type DataSource
