java连接数据库mysql时候出现错误求解决

Bonjourss 2013-04-06 03:34:24
package dbbean;
import java.sql.*;
//import java.util.*;
public class DBBean {


private Connection conn;
private Statement stmt;
private ResultSet rs;
private String connStr="jdbc:mysql://localhost:3306/student";

public DBBean(){
if(conn!=null) return;
try{
Class.forName("com.mysql.jdbc.Dirver");
conn=DriverManager.getConnection( "jdbc:mysql://localhost:3306/student","root","123456");//建立和数据库之间的连接
}catch(ClassNotFoundException e){
//e.printStackTrace();
System.out.println("驱动的类名找不到异常。");
}catch(SQLException e){
//e.printStackTrace();
System.out.println("SQL语句异常。");
}
}


public ResultSet executeQuery(String sql){
//ResultSet rs=null;
try{
//获取驱动程序对象和指定树之间的连接对象
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","123456");
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}catch(SQLException e){
System.out.println();
}
return rs;

}


public int executeUpdate(String sql){
int result=0;
try{
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","123456");
stmt=conn.createStatement();
result=stmt.executeUpdate(sql);
}catch(SQLException e){
System.out.println();
}
return result;
}


public void close(){
try{
if(rs!=null){
rs.close();
rs=null;
}
if(stmt!=null){
stmt.close();
stmt=null;
}
if(conn!=null){
conn.close();
conn=null;
}

}catch(SQLException e){
e.printStackTrace();
}
}


public String getConnStr() {
return connStr;
}


public void setConnStr(String connStr) {
this.connStr = connStr;
}

}
<%--设置字符集,保证能够正确显示中文--%>
<%@ page contentType="text/html" pageEncoding="utf-8"import="java.sql.*"%>
<%--声明和创建数据库访问Bean的对象conn,生存时间改为session --%>
<jsp:useBean id="c" class="dbbean.DBBean" scope="session" />
<%--设置conn对象的connStr属性值为“jbdc:odbc:user”,及所连接的数据库的url,这里的user为数据库对应的数据源名 --%>
<jsp:setProperty name="c" property="connStr" value="com.mysql.jdbc.Dirver" />
<%
ResultSet rs=null;
//将session的生存时间设为无限大,避免因session过期引起的问题
session.setMaxInactiveInterval(-1);
//获取用户名
String username=request.getParameter("username");
//获取用户名进行中文转换,防止中文乱码问题
username=new String(username.getBytes("gb2312"));
//获取口令
String password=request.getParameter("password");
//对口令进行编码转换
password=new String(password.getBytes("gb2312"));
//查询数据表user中是否存在匹配记录
String sql="select * from user where name='"+username+"'and password='"+password+"' ";
System.out.println(sql+"2");
rs=c.executeQuery(sql);
System.out.println(sql+"3");
if(rs.next())
{
System.out.println(sql+"3");
//将登陆的id写入到session中
session.setAttribute("loginId",rs.getString("id"));
//将登陆用户写入到session中
session.setAttribute("username",rs.getString("name"));
//关闭数据库访问Bean对象
c.close();
//重定向到系统内部功能页面
response.sendRedirect("home.html");
}
else
{

//重定向到系统登录页面
response.sendRedirect("login.html");

}

%>

2013-4-6 15:16:14 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.process_jsp._jspService(process_jsp.java:90)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703)
at java.lang.Thread.run(Thread.java:619)
select * from user where name='zhangsan'and password='123' 2

select * from user where name='zhangsan'and password='123' 3
2013-4-6 15:20:35 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.process_jsp._jspService(process_jsp.java:90)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703)
at java.lang.Thread.run(Thread.java:619)
...全文
207 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bonjourss 2013-04-07
  • 打赏
  • 举报
回复
引用 1 楼 o0lcl0o 的回复:
在jsp页面debug你的结果集是否为null
恩呢。。为null这个问题解决了 ,是我在查询的时候把字段名字写错了,改过来了 现在变成 严重: Servlet.service() for servlet jsp threw exception org.apache.jasper.JasperException: /process.jsp(4,0) The value for the useBean class attribute dbbean.DBBean is invalid.怎么解决啊
tianma630 2013-04-07
  • 打赏
  • 举报
回复
String username=request.getParameter("username"); //获取用户名进行中文转换,防止中文乱码问题 username=new String(username.getBytes("gb2312")); //获取口令 String password=request.getParameter("password"); //对口令进行编码转换 password=new String(password.getBytes("gb2312")); 没看到你吧username和password放到request里
nicholasbobo 2013-04-07
  • 打赏
  • 举报
回复
查询语句中关键字"and"位置有误,请与前面的查询条件用空格隔开
o0lcl0o 2013-04-07
  • 打赏
  • 举报
回复
在jsp页面debug你的结果集是否为null
Bonjourss 2013-04-07
  • 打赏
  • 举报
回复
引用 5 楼 nicholasbobo 的回复:
引用 4 楼 yan943789510 的回复:引用 1 楼 o0lcl0o 的回复: 在jsp页面debug你的结果集是否为null 恩呢。。为null这个问题解决了 ,是我在查询的时候把字段名字写错了,改过来了 现在变成 严重: Servlet.service() for servlet jsp threw exception org.apache.jas……
恩恩谢谢啦,,我自己改过来了,是驱动的名字写错了,你说的哪里没有错。。
nicholasbobo 2013-04-07
  • 打赏
  • 举报
回复
引用 4 楼 yan943789510 的回复:
引用 1 楼 o0lcl0o 的回复: 在jsp页面debug你的结果集是否为null 恩呢。。为null这个问题解决了 ,是我在查询的时候把字段名字写错了,改过来了 现在变成 严重: Servlet.service() for servlet jsp threw exception org.apache.jasper.JasperException: /process.jsp(4,0……
页面未引用dbbean.DBBean 类,<%@ page contentType="text/html" pageEncoding="utf-8"import="java.sql.*"%>改成<%@ page contentType="text/html" pageEncoding="utf-8"import="java.sql.*,dbbean.DBBean"%>

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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