为什么我的get方法取不到值呢,大伙帮我看看呀!

keshao1986 2009-07-08 08:53:19
pstmt = dbc.getConnection().prepareStatement(sql) ;
System.out.println("++++sql++++"+sql);
// 设置pstmt的内容,是按name和密码验证
pstmt.setString(1,pv.getUsername()) ;
pstmt.setString(2,pv.getPassword()) ;

// 查询记录
rs = pstmt.executeQuery() ;
System.out.println("------"+pv.getUsername()+"----"+pv.getPassword()+"-------------");

// 判断是否有记录
if(rs.next())
{
// 如果有记录,则执行此段代码
// 用户是合法的,可以登陆
flag = true ;
pv.setUsername(rs.getString(1)) ;
System.out.println("成功") ;
}
// 依次关闭
rs.close() ;
pstmt.close() ;



上面是数据库验证代码,执行后
连接成功++++sql++++SELECT username FROM CMUSER WHERE username=? and password=?
------null----null---003--------------------为什么总是NULL???
...全文
360 49 打赏 收藏 转发到动态 举报
写回复
用AI写文章
49 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhongpingimu 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 valen_jia 的回复:]
弄个断点,从action一步一步走呗
估计是你set的就是null,要么,就是方法名不对
[/Quote]支持这个
***!@#¥ 2009-07-08
  • 打赏
  • 举报
回复
你直接吧错误输出不就得了,看你的源代码是帮不上什么了。慢
zuoguodang 2009-07-08
  • 打赏
  • 举报
回复
估计是你没有set进去,那get怎么可能有值
keshao1986 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 jklot66 的回复:]
你这样是取不出来的,你要通过rs结果集来获取查询的结果内容
[/Quote]
老大,说清楚点呀!
TheiF_siR 2009-07-08
  • 打赏
  • 举报
回复
pv没有赋值,请检查调用的时候正确传递pv.
你用的是struts吗?如果是的话,请检查form表单和ActionForm实体。能够正确得到值,
问题应该出现在Ation里面。打断点仔细看看。
arthtic 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 keshao1986 的回复:]
pv.getUsername()=null
pv.getPassword() = null
确实是这里没取到值,但是我不能发现他那里出错了!
[/Quote]

那明显是pv的问题啊 这个对象初始化了吗?在struts-config里指定form了吗?
jklot66 2009-07-08
  • 打赏
  • 举报
回复
你这样是取不出来的,你要通过rs结果集来获取查询的结果内容
pangpanglovezz 2009-07-08
  • 打赏
  • 举报
回复
从数据库查到数据后应该pv.setuserName(rs.getString(Username));
Java_Pig 2009-07-08
  • 打赏
  • 举报
回复
给猪洗澡 到此一游。。。
zl3450341 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lmcj001 的回复:]
引用 3 楼 lmcj001 的回复:

Java code
System.out.println("------"+pv.getUsername()+"----"+pv.getPassword()+"-------------");


写到
Java code// 判断是否有记录
if(rs.next())
{
// 如果有记录,则执行此段代码
// 用户是合法的,可以登陆
flag = true ;
pv.setUsername(rs.getString(1)) ;
System.out.println("成功") …


我错了,没看清,请忽略。。
[/Quote]

up
wuliang_5016 2009-07-08
  • 打赏
  • 举报
回复
什么时候给vo赋值了?
keshao1986 2009-07-08
  • 打赏
  • 举报
回复
pv.getUsername()=null
pv.getPassword() = null
确实是这里没取到值,但是我不能发现他那里出错了!
wangjiancy 2009-07-08
  • 打赏
  • 举报
回复
Form里的值是从页面取来的,form最好不要进入到逻辑处理层面,
Vo是负责装载取得的值,也就是检索的值,或着像逻辑处理层传值的。
你的pv.getUsername()=null
pv.getPassword() = null
我觉得是因为你根本就没有取得页面的值,你的检索语句根本就没有检索出来东西,
所以才没有打印出”成功“。另外
------null----null---003--------------------为什么总是NULL???
”003“哪里来的。
[Quote=引用 7 楼 keshao1986 的回复:]
我想问的就是FORM取页面值和VO取数据库值的set和get方法有什么不同吗?
[/Quote]
zhuzhusany 2009-07-08
  • 打赏
  • 举报
回复
贴controller,拿是拿到了,但是没把表单的值赋值给UserVo
monet123 2009-07-08
  • 打赏
  • 举报
回复
应该是从页面上就没有获取出值来
keshao1986 2009-07-08
  • 打赏
  • 举报
回复
可以获取到FROM的值,我已经试过了,就是后台数据库的值没拿到!
keshao1986 2009-07-08
  • 打赏
  • 举报
回复
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package cm.ci.struts.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

/**
* MyEclipse Struts
* Creation date: 07-05-2009
*
* XDoclet definition:
* @struts.form name="loginForm"
*/
public class LoginForm extends ActionForm {
/*
* Generated fields
*/

/** password property */
private String password;

/** username property */
private String username;

/*
* Generated Methods
*/

/**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
ActionErrors errors = new ActionErrors() ;
if(this.username==null||"".equals(this.username)){
errors.add("username", new ActionMessage("username.null")) ;
}
if(this.password==null||"".equals(this.password)){
errors.add("password", new ActionMessage("password.null")) ;
}
return errors;
}

/**
* Method reset
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}

/**
* Returns the password.
* @return String
*/
public String getPassword() {
return password;
}

/**
* Set the password.
* @param password The password to set
*/
public void setPassword(String password) {
this.password = password;
}

/**
* Returns the username.
* @return String
*/
public String getUsername() {
return username;
}

/**
* Set the username.
* @param username The username to set
*/
public void setUsername(String username) {
this.username = username;
}
}
zhuzhusany 2009-07-08
  • 打赏
  • 举报
回复
拿FORM数据的类呢?
johnston678 2009-07-08
  • 打赏
  • 举报
回复
System.out.println("------"+pv.getUsername()+"----"+pv.getPassword()+"-------------");
结果:
------null----null---003--------------------为什么总是NULL???
应该是前台没有正确赋值,
连接后台的程序基本正确!

我想问的就是FORM取页面值和VO取数据库值的set和get方法有什么不同吗?
基本一样
keshao1986 2009-07-08
  • 打赏
  • 举报
回复
DAO代码

// 具体实现DAO接口的类
package cm.ci.info.daoimpl;

//需要连接数据库
//需要对VO的内容进行具体的验证
import java.sql.* ;
import cm.ci.info.dao.* ;
import cm.ci.info.dbconn.*;
import cm.ci.info.vo.* ;

public class UserDAOImpl implements UserDAO
{
public boolean isLogin(UserVo pv)
{
boolean flag = false ;
// 在此处成具体的数据库验证

// 声明一个数据库操作对象
PreparedStatement pstmt = null ;
// 声明一个结果集对象
ResultSet rs = null ;
// 声明一个SQL变量,用于保存SQL语句
String sql = null ;
// DataBaseConnection为具体的数据库连接及关闭操作类
DataBaseConnection dbc = null ;
// 连接数据库
dbc = new DataBaseConnection() ;

// 编写SQL语句
sql = "SELECT username FROM CMUSER WHERE username=? and password=?" ;

try
{
// 实例化数据库操作对象
pstmt = dbc.getConnection().prepareStatement(sql) ;
System.out.println("++++sql++++"+sql);
// 设置pstmt的内容,是按name和密码验证
pstmt.setString(1,pv.getUsername()) ;
pstmt.setString(2,pv.getPassword()) ;

// 查询记录
rs = pstmt.executeQuery() ;
System.out.println("------"+pv.getUsername()+"----"+pv.getPassword()+"-------------");

// 判断是否有记录
if(rs.next())
{
// 如果有记录,则执行此段代码
// 用户是合法的,可以登陆
flag = true ;
pv.setUsername(rs.getString(1)) ;
System.out.println("成功") ;
}
// 依次关闭
rs.close() ;
pstmt.close() ;
}
catch(Exception e)
{
System.out.println(e) ;
}
finally
{
// 最后一定要保证数据库已被关闭
dbc.close() ;
}
return flag ;
}
};
加载更多回复(28)

62,615

社区成员

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

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