求大佬再帮忙看下QAQ 关于DBBean连接

sinat_17763147 2017-04-21 01:16:02
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.DBBean"%>
<jsp:useBean id = "myDBbean" class="com.DBBean"/></jsp useBean>

<%
request.setCharacterEncoding("utf-8");
String uname = request.getParameter("account");
String upwd = request.getParameter("password");
String sql = "select * from user_login where account=? and password=?";
String[] params = new String[2];
params[0] = uname;
params[1] = upwd;

ResultSet rs = myDBbean.excuteQuery(sql,params);
/* Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/RecomSys";
String user = "root";
String password = "zhengchen521";
Connection con = DriverManager.getConnection(url,user,password);
Statement stat = con.createStatement();
ResultSet rs = stat.executeQuery(sql); */
if(rs.next()){
RequestDispatcher rd = request.getRequestDispatcher("welcome_test.jsp");
rd.forward(request,response);
}
else response.sendRedirect("index.jsp");


%>



注释部分可以执行,但调入dbbean就不行
DBBean文件
package com;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;



public class DBBean {
private String driver;
private String url;
private String username;
private String password;
private java.sql.Connection con;
private PreparedStatement pstmt;
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

public DBBean(){
driver="com.mysql.jdbc.Driver";
url="jdbc:mysql://localhost:3306/RecomSys";
username="root";
password="zhengchen521";
//init();
}

private void init(){

try{
Class.forName(driver);
con= DriverManager.getConnection(url,username,password);
}
catch(ClassNotFoundException e){
e.printStackTrace();
}catch (SQLException e){
e.printStackTrace();
}
}
public void close()
{
try{
if(con!=null)
con.close();
}catch(Exception e){
e.printStackTrace();
}
try{
if(pstmt!=null)
pstmt.close();
}catch(Exception e){
e.printStackTrace();
}

}
private void setParams(String sql,String[] params){
if(params!= null){
for(int i=0;i<params.length;i++){
try{
pstmt.setString(i+1,params[i]);
}catch(SQLException e){
e.printStackTrace();
}
}
}
}

public ResultSet excuteQuery(String sql,String[]params){
ResultSet rs=null;
init();
try{
pstmt=con.prepareStatement(sql);
setParams(sql,params);
rs=pstmt.executeQuery();
}catch(SQLException e){
e.printStackTrace();
}
return rs;
}

public int executeUpdate(String sql,String[]params){
int result =0;
init();
try{ pstmt=con.prepareStatement(sql);
setParams(sql,params);
result=pstmt.executeUpdate();
}catch(SQLException e){
e.printStackTrace();
}
return result;
}
}


错误如下:
...全文
288 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
imsprojo2FAN 2017-04-21
  • 打赏
  • 举报
回复
这是在jsp里写java代码吧,现在不都时髦MVC了吗。。
110成成 2017-04-21
  • 打赏
  • 举报
回复
看语法没问题,ctrl加鼠标左键看Test,看能不能从jsp跳转到类里面去。
李德胜1995 2017-04-21
  • 打赏
  • 举报
回复
引用 8 楼 sinat_17763147 的回复:
[quote=引用 7 楼 pany1209 的回复:] [quote=引用 6 楼 sinat_17763147 的回复:] [quote=引用 4 楼 pany1209 的回复:] [quote=引用 2 楼 sinat_17763147 的回复:] [quote=引用 1 楼 pany1209 的回复:] jsp第15行的方法未定义。。。
不是dbbean90行定义的方法吗?[/quote] 工程clean一下。。。重新部署到tomcat[/quote] clean一下是这样了。。。[/quote] 别用<jsp:useBean id = "myDBbean" class="com.DBBean"/></jsp useBean>了,在下面这就new DBBean就行了。。。[/quote] 改的代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.DBBean"%>

<%
	request.setCharacterEncoding("utf-8");
	String uname = request.getParameter("account");
	String upwd = request.getParameter("password");
	String sql = "select * from user_login where account=? and password=?";
	String[] params = new String[2];
	params[0] = uname;
	params[1] = upwd;
	DBBean db = new DBBean();
	ResultSet rs = db.query(sql,params);
	/* Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/RecomSys";
    String user = "root";
    String password = "zhengchen521";
    Connection con = DriverManager.getConnection(url,user,password);
 	PreparedStatement pstmt=con.prepareStatement(sql);
 	pstmt.setString(1,params[0]);
 	pstmt.setString(2,params[1]);
    ResultSet rs = pstmt.executeQuery(); */
	if(rs.next()){
		RequestDispatcher rd = request.getRequestDispatcher("welcome_test.jsp");
		rd.forward(request,response);
	}
	else response.sendRedirect("index.jsp");
	 

%>

是这样了_(:з」∠)_[/quote] 额。。。我没出现过这种问题。。 你试一下这个http://blog.csdn.net/advance1989/article/details/6673730
sinat_17763147 2017-04-21
  • 打赏
  • 举报
回复
引用 7 楼 pany1209 的回复:
[quote=引用 6 楼 sinat_17763147 的回复:]
[quote=引用 4 楼 pany1209 的回复:]
[quote=引用 2 楼 sinat_17763147 的回复:]
[quote=引用 1 楼 pany1209 的回复:]
jsp第15行的方法未定义。。。

不是dbbean90行定义的方法吗?[/quote]
工程clean一下。。。重新部署到tomcat[/quote]

clean一下是这样了。。。[/quote]
别用<jsp:useBean id = "myDBbean" class="com.DBBean"/></jsp useBean>了,在下面这就new DBBean就行了。。。[/quote]

改的代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.DBBean"%>

<%
request.setCharacterEncoding("utf-8");
String uname = request.getParameter("account");
String upwd = request.getParameter("password");
String sql = "select * from user_login where account=? and password=?";
String[] params = new String[2];
params[0] = uname;
params[1] = upwd;
DBBean db = new DBBean();
ResultSet rs = db.query(sql,params);
/* Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/RecomSys";
String user = "root";
String password = "zhengchen521";
Connection con = DriverManager.getConnection(url,user,password);
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1,params[0]);
pstmt.setString(2,params[1]);
ResultSet rs = pstmt.executeQuery(); */
if(rs.next()){
RequestDispatcher rd = request.getRequestDispatcher("welcome_test.jsp");
rd.forward(request,response);
}
else response.sendRedirect("index.jsp");


%>


是这样了_(:з」∠)_
李德胜1995 2017-04-21
  • 打赏
  • 举报
回复
引用 6 楼 sinat_17763147 的回复:
[quote=引用 4 楼 pany1209 的回复:] [quote=引用 2 楼 sinat_17763147 的回复:] [quote=引用 1 楼 pany1209 的回复:] jsp第15行的方法未定义。。。
不是dbbean90行定义的方法吗?[/quote] 工程clean一下。。。重新部署到tomcat[/quote] clean一下是这样了。。。[/quote] 别用<jsp:useBean id = "myDBbean" class="com.DBBean"/></jsp useBean>了,在下面这就new DBBean就行了。。。
sinat_17763147 2017-04-21
  • 打赏
  • 举报
回复
引用 4 楼 pany1209 的回复:
[quote=引用 2 楼 sinat_17763147 的回复:]
[quote=引用 1 楼 pany1209 的回复:]
jsp第15行的方法未定义。。。

不是dbbean90行定义的方法吗?[/quote]
工程clean一下。。。重新部署到tomcat[/quote]

clean一下是这样了。。。
sinat_17763147 2017-04-21
  • 打赏
  • 举报
回复

clean了一下是这样了。。。
李德胜1995 2017-04-21
  • 打赏
  • 举报
回复
引用 2 楼 sinat_17763147 的回复:
[quote=引用 1 楼 pany1209 的回复:] jsp第15行的方法未定义。。。
不是dbbean90行定义的方法吗?[/quote] 工程clean一下。。。重新部署到tomcat
sinat_17763147 2017-04-21
  • 打赏
  • 举报
回复
刚才我把excuteQuery名字改为query 返回的是“The method query(String) in the type DBBean is not applicable for the arguments (String, String[])” DBBean被我改过一次,之前查询直接定义的方法是ResultSet query(sql),用的statement。被我改成现在这样,但是根据上面这个报错信息,似乎还停留在之前?有大神知道是什么问题吗QAAAQ
sinat_17763147 2017-04-21
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
jsp第15行的方法未定义。。。
不是dbbean90行定义的方法吗?
李德胜1995 2017-04-21
  • 打赏
  • 举报
回复
jsp第15行的方法未定义。。。
<%@ page contentType="text/html;charset=gb2312" import="java.sql.*"%> Bean id="db" class="dbBean.DBBean" scope="session"/>

您最喜爱的奥斯卡获奖影片是:

<% ResultSet rs=db.executeQuery("select * from vote"); while(rs.next()) { out.println(""); out.println(""); } rs.close(); db.close(); session.setMaxInactiveInterval(-1); %>
"); out.println(rs.getString("item")); out.println("
查看投票

投票系统维护

81,094

社区成员

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

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