java.sql.SQLException: No value specified for parameter 1

时间:2022-07-10 22:51:00
代码如下 public boolean login(UserInfo user)throws Exception{
//用户登录
boolean flag=false;
int userNo=Integer.parseInt(user.getUserNo());
String password=user.getPassword();
//测试是否从现在的user对象中取到了值
System.out.println(userNo+"我是USER对象的userNo");
System.out.println(password+"我是USER对象的password");
DatabaseConnection dbc=new DatabaseConnection();//取得数据库连接和关闭对象;
try{
String sql="SELECT userNo FROM userInfo where userNo=? and password=?";
this.conn=dbc.getConnection();
this.pst=conn.prepareStatement(sql);
//this.pst.setInt(1, userNo);//给sql中参数赋值
this.pst.setLong(1, userNo);
this.pst.setString(2, password);
ResultSet rs=pst.executeQuery();
if(rs.next()){//传入用户账号和对应的密码都存在时为真
flag=true;
System.out.println(rs.getString(userNo)+"我是从数据库里取出来的");
System.out.print(flag+"测试flag");//测试flag,看是否进入了if里面,true则进入了
rs.close();
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(this.pst!=null){
this.pst.close();
}
this.conn.close();
}
return flag;
}

报的错误信息如:
at java.lang.Thread.run(Unknown Source)
123我是从页面取出来的userNO
123我是USER对象的userNo
123我是USER对象的password
java.sql.SQLException: No value specified for parameter 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2214)

从上面可以看出userNO和password都是取得了值 的,可是为什么会设置不了SQL语句里面的参数呢?

48 个解决方案

#1


pst.executeUpdate();

#2


我错了、、、看错sql了

#3


userNo 实体类中的类型是什么、和数据库的一致么、

#4


this.pst.setLong(0, userNo);
this.pst.setString(1, password);

这样设置

#5


代码应该没错,确保表里面有数据吧

#6


是否表名与关键字之间添加空格了?

#7


引用 6 楼  的回复:
是否表名与关键字之间添加空格了?


难道不用吗?不会吧,这个我一直都是这样用的呀…………

#8


引用 3 楼  的回复:
userNo 实体类中的类型是什么、和数据库的一致么、

不是,数据库里的是bigint类型哦……这样有问题不?
我等下换个统一的来试 一下

#9


引用 4 楼  的回复:
this.pst.setLong(0, userNo);
this.pst.setString(1, password);

这样设置


不懂啊?API文档都不是这样只的吧~~~(刚查了下)

#10


确定好了Userno到底是什么类型的,设置参数就是从1开始的

#11


引用 7 楼  的回复:
引用 6 楼  的回复:

是否表名与关键字之间添加空格了?


难道不用吗?不会吧,这个我一直都是这样用的呀…………

數據庫中,userNO
什麽類型?

this.pst.setLong(1, userNo);
this.pst.setString(2, password);
userNo最好給成long再設置進來,逐句類型保持一致。不知道你數據庫是什麽類型?

#12


引用 11 楼  的回复:
引用 7 楼  的回复:

引用 6 楼  的回复:

是否表名与关键字之间添加空格了?


难道不用吗?不会吧,这个我一直都是这样用的呀…………

數據庫中,userNO
什麽類型?

this.pst.setLong(1, userNo);
this.pst.setString(2, password);
userNo最好給成long再設置進來,逐句類型保持一致。……

用的是MYSQL ,类型是bigint,正要统一一下呢,刚打球赛去了,洗个澡( ⊙ o ⊙ )

#13


补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' not found.
红色这个是什么情况呢?

#14


System.out.println(rs.getString(userNo)+"我是从数据库里取出来的");

这个不对。
改成如下
System.out.println(rs.getString("userNo")+"我是从数据库里取出来的");

#15


引用 14 楼  的回复:
System.out.println(rs.getString(userNo)+"我是从数据库里取出来的");

这个不对。
改成如下
System.out.println(rs.getString("userNo")+"我是从数据库里取出来的");

确实应该如此呀……
java.sql.SQLException: No value specified for parameter 1这个问题应该怎么样啊?

#16


引用 15 楼  的回复:
引用 14 楼  的回复:

System.out.println(rs.getString(userNo)+"我是从数据库里取出来的");

这个不对。
改成如下
System.out.println(rs.getString("userNo")+"我是从数据库里取出来的");

确实应该如此呀……
java.sql.SQLException: No value specif……


你把你最新修改后的代码,用csdn标准的代码输出格式发出来,我再给你看。

#17


引用 16 楼  的回复:
引用 15 楼  的回复:

引用 14 楼  的回复:

System.out.println(rs.getString(userNo)+"我是从数据库里取出来的");

这个不对。
改成如下
System.out.println(rs.getString("userNo")+"我是从数据库里取出来的");

确实应该如此呀……
java.sql.SQLException……

csdn标准的代码输出格式?这个是什么,没看到过耶

代码如下:不知道行不行?
public boolean login(UserInfo user)throws Exception{
//用户登录
boolean flag=false;
String userNo=user.getUserNo();
String password=user.getPassword();
//测试是否从现在的user对象中取到了值
System.out.println(userNo+"我是USER对象的userNo");
System.out.println(password+"我是USER对象的password");
DatabaseConnection dbc=new DatabaseConnection();//取得数据库连接和关闭对象;
try{
String sql="SELECT userNo FROM userInfo where userNo=? and password=?";
this.conn=dbc.getConnection();
this.pst=conn.prepareStatement(sql);
//this.pst.setInt(1, userNo);//给sql中参数赋值
this.pst.setString(1, userNo);
this.pst.setString(2, password);
System.out.println(sql);
ResultSet rs=pst.executeQuery();
if(rs.next()){//传入用户账号和对应的密码都存在时为真
flag=true;
String no=rs.getString("userNo");
System.out.println(no+"我是从数据库里取出来的");
System.out.print(flag+"测试flag");//测试flag,看是否进入了if里面,true则进入了
rs.close();
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(this.pst!=null){
this.pst.close();
}
this.conn.close();
}
return flag;
}

#18


参考下面的格式。我已经修改了部分。

Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
public boolean login(UserInfo user) throws Exception {
// 用户登录
boolean flag = false;
String userNo = user.getUserNo();
String password = user.getPassword();
// 测试是否从现在的user对象中取到了值
System.out.println(userNo + "我是USER对象的userNo");
System.out.println(password + "我是USER对象的password");
DatabaseConnection dbc = new DatabaseConnection();// 取得数据库连接和关闭对象;
try {
String sql = "SELECT * FROM userInfo where userNo = ? and password = ?";
this.conn = dbc.getConnection();
this.pst = conn.prepareStatement(sql);
this.pst.setString(1, userNo);
this.pst.setString(2, password);
System.out.println(sql);
rs = pst.executeQuery();
while(rs.next()) {// 传入用户账号和对应的密码都存在时为真
flag = true;
String no = rs.getString("userNo");
System.out.println(no + "我是从数据库里取出来的");
System.out.print(flag + "测试flag");// 测试flag,看是否进入了if里面,true则进入了
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
rs.close();
}
if (pst != null) {
pst.close();
}
if (conn != null) {
conn.close();
}
}
return flag;
}

#19


引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' not found.
红色这个是什么情况呢?


1。String sql="SELECT userNo FROM userInfo where userNo=? and password=?"; 不好用
2。String sql="SELECT password FROM userInfo where userNo=? and password=?"; 应该也不好用
3。String sql="SELECT userNo,password FROM userInfo where userNo=? and password=?"; ?
4。String sql="SELECT * FROM userInfo where userNo=? and password=?"; 应该好用。
这个问题比较奇怪。

#20


引用 19 楼  的回复:
引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' not found.
红色这个是什么情况呢?


1。String sql="SELECT use……


不是好用不好用的問題,習慣而已。你先試試,看看是否ok,這個是關鍵。

#21


引用 20 楼  的回复:
引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' not found.
红色这个是什么情况呢?


1。Strin……


试了select * from……的方法,但报错一样,有没有什么方法来判断返回值为void的方法是否执行成功的呀,如设置个boolean变量,来判断this.pst.setString(1, userNo);这句是否执行成功的……

#22


引用 21 楼  的回复:
引用 20 楼  的回复:

引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' not found.
红色这个是什么……


1、没有看到你完整代码,不好确定原因。
2、你这样试试。使用普通的Statement代替PreparedStatement,试试,看看是否依旧报错、

#23


引用 22 楼  的回复:
引用 21 楼  的回复:

引用 20 楼  的回复:

引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' no……


想一下哈,在现在这种情况下,用它们的区别是什么呀?

#24


引用 23 楼  的回复:
引用 22 楼  的回复:

引用 21 楼  的回复:

引用 20 楼  的回复:

引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException……


区别一会跟你说,我问你,是不是好报错?

#25


引用 24 楼  的回复:
引用 23 楼  的回复:

引用 22 楼  的回复:

引用 21 楼  的回复:

引用 20 楼  的回复:

引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java……


一样会报错哦~~
172我是从页面取出来的userNO
172我是USER对象的userNo2
172我是USER对象的password2
SELECT userNO FROM userInfo where userNO=172 and password=172这是在执行this.st.executeQuery(sql2)之前
SELECT userNO FROM userInfo where userNO=172 and password=172这是在执行this.st.executeQuery(sql2)之后
172我是从数据库里取出来的
true测试flagjava.sql.SQLException: No value specified for parameter 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)

#26


引用 25 楼  的回复:
引用 24 楼  的回复:

引用 23 楼  的回复:

引用 22 楼  的回复:

引用 21 楼  的回复:

引用 20 楼  的回复:

引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER……




Connection conn = null;
    PreparedStatement pst = null;
    ResultSet rs = null;
    public boolean login(UserInfo user) throws Exception {
        // 用户登录
        boolean flag = false;
        String userNo = user.getUserNo();
        String password = user.getPassword();
        // 测试是否从现在的user对象中取到了值
        System.out.println(userNo + "我是USER对象的userNo");
        System.out.println(password + "我是USER对象的password");
        DatabaseConnection dbc = new DatabaseConnection();// 取得数据库连接和关闭对象;
        try {
            String sql = "SELECT * FROM userInfo where userNo = ? and password = ?";
            this.conn = dbc.getConnection();
            this.pst = conn.prepareStatement(sql);
            this.pst.setString(1, userNo);
            this.pst.setString(2, password);
            System.out.println(sql);
            rs = pst.executeQuery();
            while(rs.next()) {// 传入用户账号和对应的密码都存在时为真
                flag = true;
                String no = rs.getString("userNo");
                System.out.println(no + "我是从数据库里取出来的");
                System.out.print(flag + "测试flag");// 测试flag,看是否进入了if里面,true则进入了
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (pst != null) {
                pst.close();
            }
            if (conn != null) {
                conn.close();
            }
        }
        return flag;
    }



上面这段代码你劝改了,改成直接获取conn,获取pst,rs,别要你封装的类。


    Connection conn = null;
    PreparedStatement pst = null;
    ResultSet rs = null;
    public boolean login(UserInfo user) throws Exception {
        // 用户登录
        boolean flag = false;
        String userNo = user.getUserNo();
        String password = user.getPassword();
        try {
           Class.forName("");类似这样,写完整
            String sql = "SELECT * FROM userInfo where userNo = ? and password = ?";
            this.pst = conn.prepareStatement(sql);
            this.pst.setString(1, userNo);
            this.pst.setString(2, password);
            System.out.println(sql);
            rs = pst.executeQuery();
            while(rs.next()) {// 传入用户账号和对应的密码都存在时为真
                flag = true;
                String no = rs.getString("userNo");
                System.out.println(no + "我是从数据库里取出来的");
                System.out.print(flag + "测试flag");// 测试flag,看是否进入了if里面,true则进入了
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (pst != null) {
                pst.close();
            }
            if (conn != null) {
                conn.close();
            }
        }
        return flag;
    }

#27


26楼,还是报这样的错哦java.sql.SQLException: No value specified for parameter 1

但是这你说的这样,和报这个错有什么关联不?
挺感谢你的,能提供这么多见解~~

#28


引用 27 楼  的回复:
26楼,还是报这样的错哦java.sql.SQLException: No value specified for parameter 1

但是这你说的这样,和报这个错有什么关联不?
挺感谢你的,能提供这么多见解~~


1、我给你说这么多,是想确定是不是你建表的问题,也就是,是数据库的问题,跟程序没有关系。
2、你把你改后的完整代码贴一下,注意用csdn标准的插入源代码编辑,像26楼我发的这样的格式。把你的注释测试代码全部删除掉。
3、另外把你的表结构贴出来

#29



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.PreparedStatement;

public class UserDAOImpl implements UserDAO{
Connection conn=null;
PreparedStatement pst=null;
Statement st=null;
public boolean login(UserInfo user) throws Exception {
    // 用户登录
String DRIVER="com.mysql.jdbc.Driver";
String URL="jdbc:mysql://localhost:3309/bank";
String USER="root";
String PASSWORD="mysql";
    boolean flag = false;
    String userNo = user.getUserNo();
    String password = user.getPassword();
    System.out.println(userNo+"我是在user对象里的");
    try {
       Class.forName(DRIVER);//类似这样,写完整
       this.conn=DriverManager.getConnection(URL,USER,PASSWORD);
        String sql = "SELECT * FROM userInfo where userNo = ? and password = ?";
        this.pst = conn.prepareStatement(sql);
        this.pst.setString(1, userNo);
        this.pst.setString(2, password);
        System.out.println(sql);
        ResultSet rs = pst.executeQuery();
        if(rs.next()) {// 传入用户账号和对应的密码都存在时为真
            flag = true;
            String no = rs.getString("userNo");
            System.out.println(no + "我是从数据库里取出来的");
            System.out.println(flag + "测试flag");// 测试flag,看是否进入了if里面,true则进入了
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        /*if (rs!=null) {
         rs.close();
        }*///注释这,是因为不知道为什么rs为报错
        if (pst != null) {
            pst.close();
        }
        if (conn != null) {
            conn.close();
        }
    }
    return flag;
}
}

这是实现本功能的方法,我把它从类里剪出来了……
表的结构如下:
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| userNo          | varchar(20) | NO   | PRI |         |       |
| userName        | varchar(8)  | NO   |     |         |       |
| userAge         | int(3)      | YES  |     | NULL    |       |
| tel             | varchar(11) | NO   |     |         |       |
| userAddress     | varchar(10) | YES  |     | NULL    |       |
| userSex         | varchar(2)  | YES  |     | NULL    |       |
| balance         | int(30)     | NO   |     |         |       |
| userflag        | int(1)      | YES  |     | 0       |       |
| password        | varchar(30) | NO   |     |         |       |
| confirmpassword | varchar(30) | NO   |     |         |       |
+-----------------+-------------+------+-----+---------+-------+

#30


1、你的mysql端口是3309不是3306?你改了?
2、if(rs.next()) {// 传入用户账号和对应的密码都存在时为真
改成
while(rs.next()) {// 传入用户账号和对应的密码都存在时为真
3、ResultSet rs 放在try外面定义,
       if (rs!=null) {
            rs.close();
        }
这个就不报错了。
4、你的表没有主键?
5、
String userNo = user.getUserNo();
    String password = user.getPassword();
确定这俩都有数值,不为空?因为数据库中,userNo和password都不允许为null

6、
String no = rs.getString("userNo");
改为
String no = rs.getString(1);

#31


引用 30 楼  的回复:
1、你的mysql端口是3309不是3306?你改了?
2、if(rs.next()) {// 传入用户账号和对应的密码都存在时为真
改成
while(rs.next()) {// 传入用户账号和对应的密码都存在时为真
3、ResultSet rs 放在try外面定义,
       if (rs!=null) {
            rs.close();
        }……

回答:
1、确实是改了
2、这样有什么好处不?
3、果真如此,等下得查下这是为什么,嘿嘿
4、有啊,看下表结构的第一句| userNo | varchar(20) | NO | PRI | | |
5、of course
6、用它们都是可以取出值来哦

“昨日凡阳”,能不能加QQ好友啊?多向你讨教一下哦,我的QQ441288971

#32


你的驱动包是不是有问题

#33


引用 32 楼  的回复:
你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

#34


引用 33 楼  的回复:
引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

#35


引用 34 楼  的回复:
引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

是重装过MYSQL之后的默认的端口的

#36


引用 35 楼  的回复:
引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

是重装过MYSQL之后的默认的端口的


重转之后默认的为什么就变3309了?

#37


引用 36 楼  的回复:
引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

是重装过MYSQL之后的默认的端口的


重转之后默认的为什么就变3309了?

这个我也不是很清楚,和这有关系么?
我贴出,看一咯:
mysql> status;
--------------
mysql  Ver 14.12 Distrib 5.0.27, for Win32 (ia32)

Connection id:          1
Current database:
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.0.27-community-nt
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    gbk
Conn.  characterset:    gbk
TCP port:               3309
Uptime:                 17 min 1 sec

#38


引用 37 楼  的回复:
引用 36 楼  的回复:

引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

是重装过MYSQL之后的默认的端口的


重转之后默认的……


这看不出来什么。你的确实奇怪。

#39


引用 38 楼  的回复:
引用 37 楼  的回复:

引用 36 楼  的回复:

引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

是重装过MYSQL之后的默认……

昨晚想起来了,只是没有网上了,没有回啊,记得是重装的时候,担心以前的没有清干净,会有端口冲突,我就设置为3309了,可是这对报现在的错有影响么?

#40


引用 39 楼  的回复:
引用 38 楼  的回复:

引用 37 楼  的回复:

引用 36 楼  的回复:

引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?
……


不好說呀。

#41


引用 40 楼  的回复:
引用 39 楼  的回复:

引用 38 楼  的回复:

引用 37 楼  的回复:

引用 36 楼  的回复:

引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关……


要不我发远程给你,你调着帮我看看呗,这真是个让人纠结的问题

#42


引用 41 楼  的回复:
引用 40 楼  的回复:

引用 39 楼  的回复:

引用 38 楼  的回复:

引用 37 楼  的回复:

引用 36 楼  的回复:

引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是……


我的电脑是Linux,而且不能装qq的。

#43


这样呀,那能不能帮我看看这个校验器的问题啊?这个也让我纠结了好久……我在下面的URL这里提了问
http://topic.csdn.net/u/20120510/12/4bbd924d-7f92-4b83-b2aa-b26be9421974.html

#44


校验器的问题已解决,原来是一路径配置错了

#45


引用 44 楼  的回复:
校验器的问题已解决,原来是一路径配置错了

我看的云山雾绕的,怎么回城了路径配置问题呢?

#46


引用 45 楼  的回复:
引用 44 楼  的回复:

校验器的问题已解决,原来是一路径配置错了

我看的云山雾绕的,怎么回城了路径配置问题呢?


是在配置ACTION的时候,CLASS的路径配置了哦,<action name="registValidate" class="bank.action.validate.LoginValidate">
我这里应该是registValidate了

#47


引用 46 楼  的回复:
引用 45 楼  的回复:

引用 44 楼  的回复:

校验器的问题已解决,原来是一路径配置错了

我看的云山雾绕的,怎么回城了路径配置问题呢?


是在配置ACTION的时候,CLASS的路径配置了哦,<action name="registValidate" class="bank.action.validate.LoginValidate">
我这里应该是regis……


ok,解决了就好。

#48


引用 47 楼  的回复:
引用 46 楼  的回复:

引用 45 楼  的回复:

引用 44 楼  的回复:

校验器的问题已解决,原来是一路径配置错了

我看的云山雾绕的,怎么回城了路径配置问题呢?


是在配置ACTION的时候,CLASS的路径配置了哦,<action name="registValidate" class="bank.action.validate.LoginValida……


java.sql.SQLException: No value specified for parameter 1
这个错也不清楚为什么也不报了,谢谢你这么给了这么多的帮助……

#1


pst.executeUpdate();

#2


我错了、、、看错sql了

#3


userNo 实体类中的类型是什么、和数据库的一致么、

#4


this.pst.setLong(0, userNo);
this.pst.setString(1, password);

这样设置

#5


代码应该没错,确保表里面有数据吧

#6


是否表名与关键字之间添加空格了?

#7


引用 6 楼  的回复:
是否表名与关键字之间添加空格了?


难道不用吗?不会吧,这个我一直都是这样用的呀…………

#8


引用 3 楼  的回复:
userNo 实体类中的类型是什么、和数据库的一致么、

不是,数据库里的是bigint类型哦……这样有问题不?
我等下换个统一的来试 一下

#9


引用 4 楼  的回复:
this.pst.setLong(0, userNo);
this.pst.setString(1, password);

这样设置


不懂啊?API文档都不是这样只的吧~~~(刚查了下)

#10


确定好了Userno到底是什么类型的,设置参数就是从1开始的

#11


引用 7 楼  的回复:
引用 6 楼  的回复:

是否表名与关键字之间添加空格了?


难道不用吗?不会吧,这个我一直都是这样用的呀…………

數據庫中,userNO
什麽類型?

this.pst.setLong(1, userNo);
this.pst.setString(2, password);
userNo最好給成long再設置進來,逐句類型保持一致。不知道你數據庫是什麽類型?

#12


引用 11 楼  的回复:
引用 7 楼  的回复:

引用 6 楼  的回复:

是否表名与关键字之间添加空格了?


难道不用吗?不会吧,这个我一直都是这样用的呀…………

數據庫中,userNO
什麽類型?

this.pst.setLong(1, userNo);
this.pst.setString(2, password);
userNo最好給成long再設置進來,逐句類型保持一致。……

用的是MYSQL ,类型是bigint,正要统一一下呢,刚打球赛去了,洗个澡( ⊙ o ⊙ )

#13


补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' not found.
红色这个是什么情况呢?

#14


System.out.println(rs.getString(userNo)+"我是从数据库里取出来的");

这个不对。
改成如下
System.out.println(rs.getString("userNo")+"我是从数据库里取出来的");

#15


引用 14 楼  的回复:
System.out.println(rs.getString(userNo)+"我是从数据库里取出来的");

这个不对。
改成如下
System.out.println(rs.getString("userNo")+"我是从数据库里取出来的");

确实应该如此呀……
java.sql.SQLException: No value specified for parameter 1这个问题应该怎么样啊?

#16


引用 15 楼  的回复:
引用 14 楼  的回复:

System.out.println(rs.getString(userNo)+"我是从数据库里取出来的");

这个不对。
改成如下
System.out.println(rs.getString("userNo")+"我是从数据库里取出来的");

确实应该如此呀……
java.sql.SQLException: No value specif……


你把你最新修改后的代码,用csdn标准的代码输出格式发出来,我再给你看。

#17


引用 16 楼  的回复:
引用 15 楼  的回复:

引用 14 楼  的回复:

System.out.println(rs.getString(userNo)+"我是从数据库里取出来的");

这个不对。
改成如下
System.out.println(rs.getString("userNo")+"我是从数据库里取出来的");

确实应该如此呀……
java.sql.SQLException……

csdn标准的代码输出格式?这个是什么,没看到过耶

代码如下:不知道行不行?
public boolean login(UserInfo user)throws Exception{
//用户登录
boolean flag=false;
String userNo=user.getUserNo();
String password=user.getPassword();
//测试是否从现在的user对象中取到了值
System.out.println(userNo+"我是USER对象的userNo");
System.out.println(password+"我是USER对象的password");
DatabaseConnection dbc=new DatabaseConnection();//取得数据库连接和关闭对象;
try{
String sql="SELECT userNo FROM userInfo where userNo=? and password=?";
this.conn=dbc.getConnection();
this.pst=conn.prepareStatement(sql);
//this.pst.setInt(1, userNo);//给sql中参数赋值
this.pst.setString(1, userNo);
this.pst.setString(2, password);
System.out.println(sql);
ResultSet rs=pst.executeQuery();
if(rs.next()){//传入用户账号和对应的密码都存在时为真
flag=true;
String no=rs.getString("userNo");
System.out.println(no+"我是从数据库里取出来的");
System.out.print(flag+"测试flag");//测试flag,看是否进入了if里面,true则进入了
rs.close();
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(this.pst!=null){
this.pst.close();
}
this.conn.close();
}
return flag;
}

#18


参考下面的格式。我已经修改了部分。

Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
public boolean login(UserInfo user) throws Exception {
// 用户登录
boolean flag = false;
String userNo = user.getUserNo();
String password = user.getPassword();
// 测试是否从现在的user对象中取到了值
System.out.println(userNo + "我是USER对象的userNo");
System.out.println(password + "我是USER对象的password");
DatabaseConnection dbc = new DatabaseConnection();// 取得数据库连接和关闭对象;
try {
String sql = "SELECT * FROM userInfo where userNo = ? and password = ?";
this.conn = dbc.getConnection();
this.pst = conn.prepareStatement(sql);
this.pst.setString(1, userNo);
this.pst.setString(2, password);
System.out.println(sql);
rs = pst.executeQuery();
while(rs.next()) {// 传入用户账号和对应的密码都存在时为真
flag = true;
String no = rs.getString("userNo");
System.out.println(no + "我是从数据库里取出来的");
System.out.print(flag + "测试flag");// 测试flag,看是否进入了if里面,true则进入了
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
rs.close();
}
if (pst != null) {
pst.close();
}
if (conn != null) {
conn.close();
}
}
return flag;
}

#19


引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' not found.
红色这个是什么情况呢?


1。String sql="SELECT userNo FROM userInfo where userNo=? and password=?"; 不好用
2。String sql="SELECT password FROM userInfo where userNo=? and password=?"; 应该也不好用
3。String sql="SELECT userNo,password FROM userInfo where userNo=? and password=?"; ?
4。String sql="SELECT * FROM userInfo where userNo=? and password=?"; 应该好用。
这个问题比较奇怪。

#20


引用 19 楼  的回复:
引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' not found.
红色这个是什么情况呢?


1。String sql="SELECT use……


不是好用不好用的問題,習慣而已。你先試試,看看是否ok,這個是關鍵。

#21


引用 20 楼  的回复:
引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' not found.
红色这个是什么情况呢?


1。Strin……


试了select * from……的方法,但报错一样,有没有什么方法来判断返回值为void的方法是否执行成功的呀,如设置个boolean变量,来判断this.pst.setString(1, userNo);这句是否执行成功的……

#22


引用 21 楼  的回复:
引用 20 楼  的回复:

引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' not found.
红色这个是什么……


1、没有看到你完整代码,不好确定原因。
2、你这样试试。使用普通的Statement代替PreparedStatement,试试,看看是否依旧报错、

#23


引用 22 楼  的回复:
引用 21 楼  的回复:

引用 20 楼  的回复:

引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException: Column '172' no……


想一下哈,在现在这种情况下,用它们的区别是什么呀?

#24


引用 23 楼  的回复:
引用 22 楼  的回复:

引用 21 楼  的回复:

引用 20 楼  的回复:

引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java.sql.SQLException……


区别一会跟你说,我问你,是不是好报错?

#25


引用 24 楼  的回复:
引用 23 楼  的回复:

引用 22 楼  的回复:

引用 21 楼  的回复:

引用 20 楼  的回复:

引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER对象的password
java……


一样会报错哦~~
172我是从页面取出来的userNO
172我是USER对象的userNo2
172我是USER对象的password2
SELECT userNO FROM userInfo where userNO=172 and password=172这是在执行this.st.executeQuery(sql2)之前
SELECT userNO FROM userInfo where userNO=172 and password=172这是在执行this.st.executeQuery(sql2)之后
172我是从数据库里取出来的
true测试flagjava.sql.SQLException: No value specified for parameter 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)

#26


引用 25 楼  的回复:
引用 24 楼  的回复:

引用 23 楼  的回复:

引用 22 楼  的回复:

引用 21 楼  的回复:

引用 20 楼  的回复:

引用 19 楼  的回复:

引用 13 楼  的回复:
补充下哈,当我输入的是数据库里面的内容 的时候:控制台显示有下
172我是从页面取出来的userNO
172我是USER对象的userNo
172我是USER……




Connection conn = null;
    PreparedStatement pst = null;
    ResultSet rs = null;
    public boolean login(UserInfo user) throws Exception {
        // 用户登录
        boolean flag = false;
        String userNo = user.getUserNo();
        String password = user.getPassword();
        // 测试是否从现在的user对象中取到了值
        System.out.println(userNo + "我是USER对象的userNo");
        System.out.println(password + "我是USER对象的password");
        DatabaseConnection dbc = new DatabaseConnection();// 取得数据库连接和关闭对象;
        try {
            String sql = "SELECT * FROM userInfo where userNo = ? and password = ?";
            this.conn = dbc.getConnection();
            this.pst = conn.prepareStatement(sql);
            this.pst.setString(1, userNo);
            this.pst.setString(2, password);
            System.out.println(sql);
            rs = pst.executeQuery();
            while(rs.next()) {// 传入用户账号和对应的密码都存在时为真
                flag = true;
                String no = rs.getString("userNo");
                System.out.println(no + "我是从数据库里取出来的");
                System.out.print(flag + "测试flag");// 测试flag,看是否进入了if里面,true则进入了
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (pst != null) {
                pst.close();
            }
            if (conn != null) {
                conn.close();
            }
        }
        return flag;
    }



上面这段代码你劝改了,改成直接获取conn,获取pst,rs,别要你封装的类。


    Connection conn = null;
    PreparedStatement pst = null;
    ResultSet rs = null;
    public boolean login(UserInfo user) throws Exception {
        // 用户登录
        boolean flag = false;
        String userNo = user.getUserNo();
        String password = user.getPassword();
        try {
           Class.forName("");类似这样,写完整
            String sql = "SELECT * FROM userInfo where userNo = ? and password = ?";
            this.pst = conn.prepareStatement(sql);
            this.pst.setString(1, userNo);
            this.pst.setString(2, password);
            System.out.println(sql);
            rs = pst.executeQuery();
            while(rs.next()) {// 传入用户账号和对应的密码都存在时为真
                flag = true;
                String no = rs.getString("userNo");
                System.out.println(no + "我是从数据库里取出来的");
                System.out.print(flag + "测试flag");// 测试flag,看是否进入了if里面,true则进入了
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (pst != null) {
                pst.close();
            }
            if (conn != null) {
                conn.close();
            }
        }
        return flag;
    }

#27


26楼,还是报这样的错哦java.sql.SQLException: No value specified for parameter 1

但是这你说的这样,和报这个错有什么关联不?
挺感谢你的,能提供这么多见解~~

#28


引用 27 楼  的回复:
26楼,还是报这样的错哦java.sql.SQLException: No value specified for parameter 1

但是这你说的这样,和报这个错有什么关联不?
挺感谢你的,能提供这么多见解~~


1、我给你说这么多,是想确定是不是你建表的问题,也就是,是数据库的问题,跟程序没有关系。
2、你把你改后的完整代码贴一下,注意用csdn标准的插入源代码编辑,像26楼我发的这样的格式。把你的注释测试代码全部删除掉。
3、另外把你的表结构贴出来

#29



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.PreparedStatement;

public class UserDAOImpl implements UserDAO{
Connection conn=null;
PreparedStatement pst=null;
Statement st=null;
public boolean login(UserInfo user) throws Exception {
    // 用户登录
String DRIVER="com.mysql.jdbc.Driver";
String URL="jdbc:mysql://localhost:3309/bank";
String USER="root";
String PASSWORD="mysql";
    boolean flag = false;
    String userNo = user.getUserNo();
    String password = user.getPassword();
    System.out.println(userNo+"我是在user对象里的");
    try {
       Class.forName(DRIVER);//类似这样,写完整
       this.conn=DriverManager.getConnection(URL,USER,PASSWORD);
        String sql = "SELECT * FROM userInfo where userNo = ? and password = ?";
        this.pst = conn.prepareStatement(sql);
        this.pst.setString(1, userNo);
        this.pst.setString(2, password);
        System.out.println(sql);
        ResultSet rs = pst.executeQuery();
        if(rs.next()) {// 传入用户账号和对应的密码都存在时为真
            flag = true;
            String no = rs.getString("userNo");
            System.out.println(no + "我是从数据库里取出来的");
            System.out.println(flag + "测试flag");// 测试flag,看是否进入了if里面,true则进入了
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        /*if (rs!=null) {
         rs.close();
        }*///注释这,是因为不知道为什么rs为报错
        if (pst != null) {
            pst.close();
        }
        if (conn != null) {
            conn.close();
        }
    }
    return flag;
}
}

这是实现本功能的方法,我把它从类里剪出来了……
表的结构如下:
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| userNo          | varchar(20) | NO   | PRI |         |       |
| userName        | varchar(8)  | NO   |     |         |       |
| userAge         | int(3)      | YES  |     | NULL    |       |
| tel             | varchar(11) | NO   |     |         |       |
| userAddress     | varchar(10) | YES  |     | NULL    |       |
| userSex         | varchar(2)  | YES  |     | NULL    |       |
| balance         | int(30)     | NO   |     |         |       |
| userflag        | int(1)      | YES  |     | 0       |       |
| password        | varchar(30) | NO   |     |         |       |
| confirmpassword | varchar(30) | NO   |     |         |       |
+-----------------+-------------+------+-----+---------+-------+

#30


1、你的mysql端口是3309不是3306?你改了?
2、if(rs.next()) {// 传入用户账号和对应的密码都存在时为真
改成
while(rs.next()) {// 传入用户账号和对应的密码都存在时为真
3、ResultSet rs 放在try外面定义,
       if (rs!=null) {
            rs.close();
        }
这个就不报错了。
4、你的表没有主键?
5、
String userNo = user.getUserNo();
    String password = user.getPassword();
确定这俩都有数值,不为空?因为数据库中,userNo和password都不允许为null

6、
String no = rs.getString("userNo");
改为
String no = rs.getString(1);

#31


引用 30 楼  的回复:
1、你的mysql端口是3309不是3306?你改了?
2、if(rs.next()) {// 传入用户账号和对应的密码都存在时为真
改成
while(rs.next()) {// 传入用户账号和对应的密码都存在时为真
3、ResultSet rs 放在try外面定义,
       if (rs!=null) {
            rs.close();
        }……

回答:
1、确实是改了
2、这样有什么好处不?
3、果真如此,等下得查下这是为什么,嘿嘿
4、有啊,看下表结构的第一句| userNo | varchar(20) | NO | PRI | | |
5、of course
6、用它们都是可以取出值来哦

“昨日凡阳”,能不能加QQ好友啊?多向你讨教一下哦,我的QQ441288971

#32


你的驱动包是不是有问题

#33


引用 32 楼  的回复:
你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

#34


引用 33 楼  的回复:
引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

#35


引用 34 楼  的回复:
引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

是重装过MYSQL之后的默认的端口的

#36


引用 35 楼  的回复:
引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

是重装过MYSQL之后的默认的端口的


重转之后默认的为什么就变3309了?

#37


引用 36 楼  的回复:
引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

是重装过MYSQL之后的默认的端口的


重转之后默认的为什么就变3309了?

这个我也不是很清楚,和这有关系么?
我贴出,看一咯:
mysql> status;
--------------
mysql  Ver 14.12 Distrib 5.0.27, for Win32 (ia32)

Connection id:          1
Current database:
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.0.27-community-nt
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    gbk
Conn.  characterset:    gbk
TCP port:               3309
Uptime:                 17 min 1 sec

#38


引用 37 楼  的回复:
引用 36 楼  的回复:

引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

是重装过MYSQL之后的默认的端口的


重转之后默认的……


这看不出来什么。你的确实奇怪。

#39


引用 38 楼  的回复:
引用 37 楼  的回复:

引用 36 楼  的回复:

引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?

是重装过MYSQL之后的默认……

昨晚想起来了,只是没有网上了,没有回啊,记得是重装的时候,担心以前的没有清干净,会有端口冲突,我就设置为3309了,可是这对报现在的错有影响么?

#40


引用 39 楼  的回复:
引用 38 楼  的回复:

引用 37 楼  的回复:

引用 36 楼  的回复:

引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关系 ?

你为什么要改端口?
……


不好說呀。

#41


引用 40 楼  的回复:
引用 39 楼  的回复:

引用 38 楼  的回复:

引用 37 楼  的回复:

引用 36 楼  的回复:

引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是都不会报呀,难道和重装了系统也有关……


要不我发远程给你,你调着帮我看看呗,这真是个让人纠结的问题

#42


引用 41 楼  的回复:
引用 40 楼  的回复:

引用 39 楼  的回复:

引用 38 楼  的回复:

引用 37 楼  的回复:

引用 36 楼  的回复:

引用 35 楼  的回复:

引用 34 楼  的回复:

引用 33 楼  的回复:

引用 32 楼  的回复:

你的驱动包是不是有问题

不会吧,想不能的是,以前我也是这样用的,东西 也都是那些,可是……


我的电脑是Linux,而且不能装qq的。

#43


这样呀,那能不能帮我看看这个校验器的问题啊?这个也让我纠结了好久……我在下面的URL这里提了问
http://topic.csdn.net/u/20120510/12/4bbd924d-7f92-4b83-b2aa-b26be9421974.html

#44


校验器的问题已解决,原来是一路径配置错了

#45


引用 44 楼  的回复:
校验器的问题已解决,原来是一路径配置错了

我看的云山雾绕的,怎么回城了路径配置问题呢?

#46


引用 45 楼  的回复:
引用 44 楼  的回复:

校验器的问题已解决,原来是一路径配置错了

我看的云山雾绕的,怎么回城了路径配置问题呢?


是在配置ACTION的时候,CLASS的路径配置了哦,<action name="registValidate" class="bank.action.validate.LoginValidate">
我这里应该是registValidate了

#47


引用 46 楼  的回复:
引用 45 楼  的回复:

引用 44 楼  的回复:

校验器的问题已解决,原来是一路径配置错了

我看的云山雾绕的,怎么回城了路径配置问题呢?


是在配置ACTION的时候,CLASS的路径配置了哦,<action name="registValidate" class="bank.action.validate.LoginValidate">
我这里应该是regis……


ok,解决了就好。

#48


引用 47 楼  的回复:
引用 46 楼  的回复:

引用 45 楼  的回复:

引用 44 楼  的回复:

校验器的问题已解决,原来是一路径配置错了

我看的云山雾绕的,怎么回城了路径配置问题呢?


是在配置ACTION的时候,CLASS的路径配置了哦,<action name="registValidate" class="bank.action.validate.LoginValida……


java.sql.SQLException: No value specified for parameter 1
这个错也不清楚为什么也不报了,谢谢你这么给了这么多的帮助……