LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2315|回复: 17

请教大家一个数据库挂接问题

[复制链接]
发表于 2004-6-8 22:18:15 | 显示全部楼层 |阅读模式
1 login.jsp
[php]
<%@ page contentType="text/html;charset=gb2312" language="java"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>jsp连接数据库测试</title>
<script language="javascript">
function login(frm)
{
        if(frm.userName.value == "")
        {
                alert("用户名不能为空");
                frm.userName.focus();
                return false;
        }
        else if(frm.userPassword.value == "")
        {
                alert("密码不能为空");
                frm.userPassword.focus();
                return false;
        }
        else
        {
                return true;
        }
}
</script>
</head>
<body>
<center>
<form name="frm" method="post" action="login_confirm.jsp" onSubmit="return login(this)">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="userPassword"></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="提交"></td>
</tr>
</table>
</form>
现在是北京时间:
<%= new java.util.Date().toLocaleString()%>
</center>
</body>
</html>
[/php]

2 login_confirm.jsp
[php]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"%>
<jsp:useBean id="query" class="testBean.QueryBean" scope="page"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>连接数据库</title>
</head>
<body>
<%
        String userName = request.getParameter("userName");
        String userPassword = request.getParameter("userPassword");
        out.println(userName);
        out.println(userPassword);
        int flag = query.demand(userName,userPassword);
        out.println(flag);
        /*switch(flag)
        {
                case 1:
                        response.sendRedirect("succeed.html");
                        break;
                case 0:
                        response.sendRedirect("fail.html");
                        break;
        }*/
%>
</body>
</html>
[/php]

3 testBean
[php]
package testBean;
import java.sql.*;
import javax.sql.*;
import java.io.*;

public class QueryBean
{
        private PreparedStatement pstmt = null;
        private Connection con = null;
        private ResultSet rs = null;

        public int demand(String userName,String userPassword)
        {
                System.out.println(userName);
                System.out.println(userPassword);
                int flag = 0;
                try
                {

                        Class.forName("org.gjt.mm.mysql.Driver").newInstance();
                        con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/jxd","root","");
                        pstmt = con.prepareStatement("SELECT username,userpassword FROM user_test WHERE username=? AND userpassword=?");
                        pstmt.setString(1,userName);
                        pstmt.setString(2,userPassword);
                        rs = pstmt.executeQuery();
                        if(rs.next())
                        {
                                flag = 1;
                        }
                        rs.close();
                        con.close();

                }
                catch(Exception e)
                {
                        e.printStackTrace();
                }
                return flag;
        }
}
[/php]

问题是无论输入的数据正确与否,都只输出0!!为什么?
jdk:1.5.0
tomcat:5.0.25
数据库:jxd
表:user_test

谢谢大家!
发表于 2004-6-9 00:34:30 | 显示全部楼层
在if(rs.next())前加入:rs.beforeFirst()看看行不行

PS:jdk1.5出来了?什么时候出的?
孤陋寡闻了...
发表于 2004-6-9 08:41:40 | 显示全部楼层
to AirFish:
  The jdk 1.5 beta 2 has already available

click here: to down:
  http://java.sun.com/j2se/1.5.0/download.jsp
发表于 2004-6-9 08:47:28 | 显示全部楼层
to menglianjing:
  
  I met this question before.Maybe you havn't connected the mysql.
  
If you will ,please change the JDBC Driver to try again, use

  Class.forName("com.mysql.jdbc.Driver").
 楼主| 发表于 2004-6-9 08:47:33 | 显示全部楼层

re

你的意思是把游标先移到最前面吗?
 楼主| 发表于 2004-6-9 08:49:32 | 显示全部楼层

re

如果没有连接数据库应该报错才对,不过我也回去试试,谢谢你
发表于 2004-6-9 09:18:18 | 显示全部楼层
没连接上数据库应该在:
pstmt = con.prepareStatement("SELECT username,userpassword FROM user_test WHERE username=? AND userpassword=?");
这句或之前就报错了(如果你抛了错)

PS:thanks supcc
 楼主| 发表于 2004-6-9 09:27:44 | 显示全部楼层

re

是的,我是抛了异常,源程序是这样的,发到论坛上为了省事就合成Exception了。但是我执行的时候并没有抛异常
发表于 2004-6-9 09:34:36 | 显示全部楼层
应该连上了吧。。。
控制台会输出连接信息的,可以查看一下
发表于 2004-6-9 10:16:11 | 显示全部楼层
I met the question is this:
While compile the source in Eclipse i can connected and no exception to throw, but can't connected to mysql when i deploy under tomcat.So I changed jdbc driver.
Successful.

Maybe useful for you.

Please copy the exception ,tomcat's console,  let us see more.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表