页面跳转出现空指针异常 求大神帮解决

qq_34283349 2016-04-18 01:04:45
警告: Method execution failed:
java.lang.NullPointerException
at com.dao.DB.getRs(DB.java:82)
at com.service.loginService.login(loginService.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)
at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283)
at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.util.EncodingFilter.doFilter(EncodingFilter.java:30)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:619)
2016-4-18 13:12:13 org.directwebremoting.util.CommonsLoggingOutput warn
警告: --Erroring: batchId[0] message[java.lang.NullPointerException]
...全文
901 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34283349 2016-04-20
  • 打赏
  • 举报
回复
求大神帮忙!!!! 页面跳转弹出用户名或密码错误,之后后台出现 2016-4-20 11:04:25 org.directwebremoting.util.CommonsLoggingOutput info 信息: Exec: loginService.login() userType0 2 select * from t_admin where userName=? and userPw=? 数据库里的没有传进去 以下是loginService if(userType==0)//系统管理员登陆 { String sql="select * from t_admin where userName=? and userPw=?"; Object[] params={userName,userPw}; DB mydb=new DB(); //mydb.doPstm(sql, params); try { ResultSet rs=mydb.doPstm(sql,params); boolean mark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } else { result="yes"; TAdmin admin=new TAdmin(); admin.setUserId(rs.getInt("userId")); admin.setUserName(rs.getString("userName")); admin.setUserPw(rs.getString("userPw")); WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); session.setAttribute("userType", 0); session.setAttribute("admin", admin); } //System.out.println(1); //rs.close(); } catch (SQLException e) { System.out.println("登录失败!"); e.printStackTrace(); } finally { mydb.closed(); } } if(userType==1) { //System.out.println("ddddddddddd"); String sql="select * from t_yuangong where del='no' and loginName=? and loginPw=?"; Object[] params={userName,userPw}; DB mydb=new DB(); try { ResultSet rs=mydb.doPstm(sql,params); boolean mark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } else { result="yes"; Yuangong yuangong=new Yuangong(); yuangong.setId(rs.getInt("id")); yuangong.setName(rs.getString("name")); yuangong.setSex(rs.getString("sex")); yuangong.setAge(rs.getString("age")); yuangong.setTel(rs.getString("tel")); yuangong.setAddress(rs.getString("address")); yuangong.setZhiwei(rs.getString("zhiwei")); yuangong.setQuanxian(rs.getInt("quanxian")); yuangong.setLoginName(rs.getString("loginName")); yuangong.setLoginPw(rs.getString("loginPw")); WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); session.setAttribute("userType", 1); session.setAttribute("yuangong", yuangong); } } catch (SQLException e) { System.out.println("登录失败!"); e.printStackTrace(); } finally { mydb.closed(); } } if(userType==2) { } return result; }
qq_34283349 2016-04-20
  • 打赏
  • 举报
回复
引用 34 楼 qq_34283349 的回复:
求大神帮忙!!!!


页面跳转弹出用户名或密码错误,之后后台出现
2016-4-20 11:04:25 org.directwebremoting.util.CommonsLoggingOutput info
信息: Exec: loginService.login()
userType0
2
select * from t_admin where userName=? and userPw=?

数据库里的没有传进去 以下是loginService


if(userType==0)//系统管理员登陆
{
String sql="select * from t_admin where userName=? and userPw=?";
Object[] params={userName,userPw};
DB mydb=new DB();
//mydb.doPstm(sql, params);
try
{
ResultSet rs=mydb.doPstm(sql,params);
boolean mark=(rs==null||!rs.next()?false:true);
if(mark==false)
{
result="no";
}
else
{
result="yes";
TAdmin admin=new TAdmin();
admin.setUserId(rs.getInt("userId"));
admin.setUserName(rs.getString("userName"));
admin.setUserPw(rs.getString("userPw"));
WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
session.setAttribute("userType", 0);
session.setAttribute("admin", admin);
}
//System.out.println(1);
//rs.close();
}
catch (SQLException e)
{
System.out.println("登录失败!");
e.printStackTrace();
}
finally
{
mydb.closed();
}

}


if(userType==1)
{
//System.out.println("ddddddddddd");
String sql="select * from t_yuangong where del='no' and loginName=? and loginPw=?";
Object[] params={userName,userPw};
DB mydb=new DB();

try
{
ResultSet rs=mydb.doPstm(sql,params);
boolean mark=(rs==null||!rs.next()?false:true);
if(mark==false)
{
result="no";
}
else
{
result="yes";

Yuangong yuangong=new Yuangong();
yuangong.setId(rs.getInt("id"));
yuangong.setName(rs.getString("name"));
yuangong.setSex(rs.getString("sex"));
yuangong.setAge(rs.getString("age"));
yuangong.setTel(rs.getString("tel"));
yuangong.setAddress(rs.getString("address"));
yuangong.setZhiwei(rs.getString("zhiwei"));
yuangong.setQuanxian(rs.getInt("quanxian"));
yuangong.setLoginName(rs.getString("loginName"));
yuangong.setLoginPw(rs.getString("loginPw"));

WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
session.setAttribute("userType", 1);
session.setAttribute("yuangong", yuangong);


}

}
catch (SQLException e)
{
System.out.println("登录失败!");
e.printStackTrace();
}
finally
{
mydb.closed();
}
}
if(userType==2)
{

}
return result;
}



  • 打赏
  • 举报
回复
rs没得到,少年,你这需要一步一步调试了
qq_34283349 2016-04-19
  • 打赏
  • 举报
回复
引用 20 楼 qq_34283349 的回复:
[quote=引用 19 楼 qnmdcsdn 的回复:] 63行是哪一行
rs.close() 这一行[/quote] if(userType==0)//系统管理员登陆 { String sql="select * from t_admin where userName=? and userPw=?"; Object[] params={userName,userPw}; DB mydb=new DB(); mydb.doPstm(sql, params); try { ResultSet rs=mydb.doPstm(sql, params); boolean mark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } else { result="yes"; TAdmin admin=new TAdmin(); admin.setUserId(rs.getInt("userId")); admin.setUserName(rs.getString("userName")); admin.setUserPw(rs.getString("userPw")); WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); session.setAttribute("userType", 0); session.setAttribute("admin", admin); } rs.close(); } catch (SQLException e) { System.out.println("登录失败!"); e.printStackTrace(); } finally { mydb.closed(); } }
qq_34283349 2016-04-19
  • 打赏
  • 举报
回复
引用 19 楼 qnmdcsdn 的回复:
63行是哪一行
rs.close() 这一行
  • 打赏
  • 举报
回复
63行是哪一行
qq_34283349 2016-04-19
  • 打赏
  • 举报
回复



点管理员登陆就出ERROR

警告: --Erroring: batchId[0] message[java.lang.NullPointerException]
qq_34283349 2016-04-19
  • 打赏
  • 举报
回复
引用 16 楼 qq_34283349 的回复:
[quote=引用 15 楼 qnmdcsdn 的回复:]
DB mydb=new DB();
mydb.doPstm(sql, params);
try 
{
ResultSet rs=mydb.getRs();
boolean mark=(rs==null||!rs.next()?false:true);
//改成
ResultSet rs=mydb.doPstm(sql, params);

public void doPstm(String sql, Object[] params)
{
if (sql != null && !sql.equals(""))
{
if (params == null)
params = new Object[0];

getCon();
if (con != null)
{
try
{
System.out.println(sql);
pstm = con.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < params.length; i++)
{
pstm.setObject(i + 1, params[i]);
}
pstm.execute();
} catch (SQLException e)
{
System.out.println("doPstm()方法出错!");
e.printStackTrace();
}
}
}
}
//改成
public ResultSet doPstm(String sql, Object[] params)
{
if (sql != null && !sql.equals(""))
{
if (params == null)
params = new Object[0];

getCon();
if (con != null)
{
try
{
System.out.println(sql);
pstm = con.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < params.length; i++)
{
pstm.setObject(i + 1, params[i]);
}
pstm.execute();
return pstm.getResultSet();
} catch (SQLException e)
{
System.out.println("doPstm()方法出错!");
e.printStackTrace();
}
}
}
}
改完之后提示这里有错 else { result="yes"; TAdmin admin=new TAdmin(); admin.setUserId(rs.getInt("userId")); admin.setUserName(rs.getString("userName")); admin.setUserPw(rs.getString("userPw")); WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); session.setAttribute("userType", 0); session.setAttribute("admin", admin); } System.out.println(1); rs.close(); } [/quote] 还是空指针 at com.service.loginService.login(loginService.java:63) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34) at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431) at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283) at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52) at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146) at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.util.EncodingFilter.doFilter(EncodingFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:619) 2016-4-19 11:31:24 org.directwebremoting.util.CommonsLoggingOutput warn 警告: --Erroring: batchId[0] message[java.lang.NullPointerException]
qq_34283349 2016-04-19
  • 打赏
  • 举报
回复
引用 15 楼 qnmdcsdn 的回复:
DB mydb=new DB();
mydb.doPstm(sql, params);
try 
{
ResultSet rs=mydb.getRs();
boolean mark=(rs==null||!rs.next()?false:true);
//改成
ResultSet rs=mydb.doPstm(sql, params);

public void doPstm(String sql, Object[] params)
{
if (sql != null && !sql.equals(""))
{
if (params == null)
params = new Object[0];

getCon();
if (con != null)
{
try
{
System.out.println(sql);
pstm = con.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < params.length; i++)
{
pstm.setObject(i + 1, params[i]);
}
pstm.execute();
} catch (SQLException e)
{
System.out.println("doPstm()方法出错!");
e.printStackTrace();
}
}
}
}
//改成
public ResultSet doPstm(String sql, Object[] params)
{
if (sql != null && !sql.equals(""))
{
if (params == null)
params = new Object[0];

getCon();
if (con != null)
{
try
{
System.out.println(sql);
pstm = con.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < params.length; i++)
{
pstm.setObject(i + 1, params[i]);
}
pstm.execute();
return pstm.getResultSet();
} catch (SQLException e)
{
System.out.println("doPstm()方法出错!");
e.printStackTrace();
}
}
}
}
改完之后提示这里有错 else { result="yes"; TAdmin admin=new TAdmin(); admin.setUserId(rs.getInt("userId")); admin.setUserName(rs.getString("userName")); admin.setUserPw(rs.getString("userPw")); WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); session.setAttribute("userType", 0); session.setAttribute("admin", admin); } System.out.println(1); rs.close(); }
  • 打赏
  • 举报
回复
DB mydb=new DB();
mydb.doPstm(sql, params);
try 
{
ResultSet rs=mydb.getRs();
boolean mark=(rs==null||!rs.next()?false:true);
//改成
ResultSet rs=mydb.doPstm(sql, params);

public void doPstm(String sql, Object[] params)
{
if (sql != null && !sql.equals(""))
{
if (params == null)
params = new Object[0];

getCon();
if (con != null)
{
try
{
System.out.println(sql);
pstm = con.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < params.length; i++)
{
pstm.setObject(i + 1, params[i]);
}
pstm.execute();
} catch (SQLException e)
{
System.out.println("doPstm()方法出错!");
e.printStackTrace();
}
}
}
}
//改成
public ResultSet doPstm(String sql, Object[] params)
{
if (sql != null && !sql.equals(""))
{
if (params == null)
params = new Object[0];

getCon();
if (con != null)
{
try
{
System.out.println(sql);
pstm = con.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < params.length; i++)
{
pstm.setObject(i + 1, params[i]);
}
pstm.execute();
return pstm.getResultSet();
} catch (SQLException e)
{
System.out.println("doPstm()方法出错!");
e.printStackTrace();
}
}
}
}
qq_34283349 2016-04-19
  • 打赏
  • 举报
回复
引用 13 楼 qnmdcsdn 的回复:
[quote=引用 12 楼 qq_34283349 的回复:] [quote=引用 10 楼 qnmdcsdn 的回复:] [quote=引用 9 楼 qq_34283349 的回复:] [quote=引用 8 楼 qnmdcsdn 的回复:] 你这DB写的。。。pstm 是在doPstm里边初始化的,也就是说调完它之后才能调后边的
那该怎么写 大神 求指教[/quote] 你doPstm的时候把pstm返回来,调用getRs的时候传进去[/quote] 大神求个具体点的代码 [/quote] 你也别整那些幺蛾子了,直接在doPstm中查找结果返回就行了,不要getRs了,明白不?就是把getRs的内容挪到doPstm的最后边[/quote] 这个真没懂 大神 我块真的不怎么懂 这段是在网上摘抄下来的 如果不用getRs 那loginService 就报错 package com.service; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpSession; import org.directwebremoting.WebContext; import org.directwebremoting.WebContextFactory; import com.dao.DB; import com.orm.TAdmin; import com.orm.Yuangong; public class loginService { public String login(String userName,String userPw,int userType) { System.out.println("userType"+userType); try { Thread.sleep(700); } catch (InterruptedException e) { e.printStackTrace(); } String result="no"; if(userType==0)//系统管理员登陆 { String sql="select * from t_admin where userName=? and userPw=?"; Object[] params={userName,userPw}; DB mydb=new DB(); mydb.doPstm(sql, params); try { ResultSet rs=mydb.getRs(); boolean mark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } else { result="yes"; TAdmin admin=new TAdmin(); admin.setUserId(rs.getInt("userId")); admin.setUserName(rs.getString("userName")); admin.setUserPw(rs.getString("userPw")); WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); session.setAttribute("userType", 0); session.setAttribute("admin", admin); } System.out.println(1); rs.close(); } catch (SQLException e) { System.out.println("登录失败!"); e.printStackTrace(); } finally { mydb.closed(); } } if(userType==1) { System.out.println("ddddddddddd"); String sql="select * from t_yuangong where del='no' and loginName=? and loginPw=?"; Object[] params={userName,userPw}; DB mydb=new DB(); mydb.doPstm(sql, params); try { ResultSet rs=mydb.getRs(); boolean mark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } else { result="yes";
  • 打赏
  • 举报
回复
引用 12 楼 qq_34283349 的回复:
[quote=引用 10 楼 qnmdcsdn 的回复:] [quote=引用 9 楼 qq_34283349 的回复:] [quote=引用 8 楼 qnmdcsdn 的回复:] 你这DB写的。。。pstm 是在doPstm里边初始化的,也就是说调完它之后才能调后边的
那该怎么写 大神 求指教[/quote] 你doPstm的时候把pstm返回来,调用getRs的时候传进去[/quote] 大神求个具体点的代码 [/quote] 你也别整那些幺蛾子了,直接在doPstm中查找结果返回就行了,不要getRs了,明白不?就是把getRs的内容挪到doPstm的最后边
qq_34283349 2016-04-19
  • 打赏
  • 举报
回复



batchId[0] message[java.lang.NullPointerException]

点登陆 就出现空指针异常
  • 打赏
  • 举报
回复
引用 9 楼 qq_34283349 的回复:
[quote=引用 8 楼 qnmdcsdn 的回复:] 你这DB写的。。。pstm 是在doPstm里边初始化的,也就是说调完它之后才能调后边的
那该怎么写 大神 求指教[/quote] 你doPstm的时候把pstm返回来,调用getRs的时候传进去
qq_34283349 2016-04-19
  • 打赏
  • 举报
回复
引用 10 楼 qnmdcsdn 的回复:
[quote=引用 9 楼 qq_34283349 的回复:] [quote=引用 8 楼 qnmdcsdn 的回复:] 你这DB写的。。。pstm 是在doPstm里边初始化的,也就是说调完它之后才能调后边的
那该怎么写 大神 求指教[/quote] 你doPstm的时候把pstm返回来,调用getRs的时候传进去[/quote] 大神求个具体点的代码
qq_34283349 2016-04-19
  • 打赏
  • 举报
回复
引用 8 楼 qnmdcsdn 的回复:
你这DB写的。。。pstm 是在doPstm里边初始化的,也就是说调完它之后才能调后边的
那该怎么写 大神 求指教
  • 打赏
  • 举报
回复
你这DB写的。。。pstm 是在doPstm里边初始化的,也就是说调完它之后才能调后边的
qq_34283349 2016-04-19
  • 打赏
  • 举报
回复
package com.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DB { private Connection con; private PreparedStatement pstm; private String user = "system";//数据库的连接名 private String password = "admin";//数据库的连接密码,需要改成你自己的 private String className = "oracle.jdbc.driver.OracleDriver"; private String url = "jdbc:oracle:thin:@localhost:1521;orcl"; public DB() { try { Class.forName(className); } catch (ClassNotFoundException e) { System.out.println("加载数据库驱动失败!"); e.printStackTrace(); } } /** 创建数据库连接 */ public Connection getCon() { try { con = DriverManager.getConnection(url, user, password); } catch (SQLException e) { System.out.println("创建数据库连接失败!"); con = null; e.printStackTrace(); } return con; } public void doPstm(String sql, Object[] params) { if (sql != null && !sql.equals("")) { if (params == null) params = new Object[0]; getCon(); if (con != null) { try { System.out.println(sql); pstm = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); for (int i = 0; i < params.length; i++) { pstm.setObject(i + 1, params[i]); } pstm.execute(); } catch (SQLException e) { System.out.println("doPstm()方法出错!"); e.printStackTrace(); } } } } public ResultSet getRs() throws SQLException { return pstm.getResultSet(); } public int getCount() throws SQLException { return pstm.getUpdateCount(); } public void closed() { try { if (pstm != null) pstm.close(); } catch (SQLException e) { System.out.println("关闭pstm对象失败!"); e.printStackTrace(); } try { if (con != null) { con.close(); } } catch (SQLException e) { System.out.println("关闭con对象失败!"); e.printStackTrace(); } } } 这个哪里没实例化 求大神指导
  • 打赏
  • 举报
回复
楼上们说得对
  • 打赏
  • 举报
回复
我也是醉了。。
加载更多回复(15)

81,095

社区成员

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

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