vo包中的set属性方法不能应用于(java.lang.String,一般情况下是出于什么原因??

Feuda 2011-03-25 10:21:33
以下是我的部分代码:
public Person queryById(String id) throws Exception
{
Person person = null ;
String sql = "SELECT id,name,password,age,email FROM person WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,id) ;
// 进行数据库查询操作
ResultSet rs = pstmt.executeQuery() ;
if(rs.next())
{
// 查询出内容,之后将查询出的内容赋值给person对象
person = new Person() ;
person.setId(rs.getString(1)) ;//到这一步出现上述错误
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ;
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出现异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
return person ;
}

在cmd里编译结果错误显示:
E:\newfile\chou\WEB-INF\classes>javac -d . PersonDAOImpl.java
PersonDAOImpl.java:103: 找不到符号
符号: 方法 setId(java.lang.String)
位置: 类 cn.nan.feuda.vo.Person
person.setId(rs.getString(1)) ;
^
PersonDAOImpl.java:105: 无法将 cn.nan.feuda.vo.Person 中的 setPassword() 应用于
(java.lang.String)
person.setPassword(rs.getString(3)) ;
^
PersonDAOImpl.java:139: 找不到符号
符号: 方法 setId(java.lang.String)
位置: 类 cn.nan.feuda.vo.Person
Person.setId(rs.getString(1)) ;
^
PersonDAOImpl.java:141: 无法将 cn.nan.feuda.vo.Person 中的 setPassword() 应用于
(java.lang.String)
person.setPassword(rs.getString(3)) ;
^
PersonDAOImpl.java:178: 找不到符号
符号: 方法 setId(java.lang.String)
位置: 类 cn.nan.feuda.vo.Person
person.setId(rs.getString(1)) ;
^
PersonDAOImpl.java:180: 无法将 cn.nan.feuda.vo.Person 中的 setPassword() 应用于
(java.lang.String)
person.setPassword(rs.getString(3)) ;
^
注意:PersonDAOImpl.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
6 错误
...全文
933 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tsdxx0 2011-11-20
  • 打赏
  • 举报
回复
同学,你如何解决的,我也有这个问题
Feuda 2011-03-25
  • 打赏
  • 举报
回复
OK ,我知道怎么去表达我的问题了,前面太着急了,表达错了,SORRY

①数据库里的数据类型一定要和Person类里的数据类型一致吗?
数据库里:
id varchar(22),
name varchar(32),
password varchar(38),
age varchar(35),
email varchar(45)

Person类里:
private String id ;
private String name ;
private String password ;
private int age ;
private String email ;

后面代码出错部分:
person = new Person() ;
Person.setId(rs.getString(1)) ;
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ;

出错部分应该如何写呢?
rs.getString() OR rs.getInt() 里面的String,int是取决与数据库里还是Person类里,或是数据库里的数据类型一定要和Person类里的数据类型一致?


希望亲们能解答O(∩_∩)O~~

planwk 2011-03-25
  • 打赏
  • 举报
回复
person.setId(rs.getString(1)) ;//到这一步出现上述错误 因为你数据库中的id是int类型,所有获取的时候也应该这样:rs.getInt(1)


PersonDAOImpl.java:105: 无法将 cn.nan.feuda.vo.Person 中的 setPassword() 应用于
(java.lang.String)
person.setPassword(rs.getString(3)) ;

至于这个错误你看一下你的set方法中的参数类型是不是String类型。
Feuda 2011-03-25
  • 打赏
  • 举报
回复
数据库里除了id是int类型,其余的都是varchar类型
Feuda 2011-03-25
  • 打赏
  • 举报
回复
id和password都是String类型的
xdrs1314 2011-03-25
  • 打赏
  • 举报
回复
你看下Person类中的属性类型和数据库中类型是否一致。
zn85600301 2011-03-25
  • 打赏
  • 举报
回复
你的 ID 和password 是什么数据类型的 是不是int型的?
Feuda 2011-03-25
  • 打赏
  • 举报
回复
没有人出现过这样的错误吗?
Feuda 2011-03-25
  • 打赏
  • 举报
回复
已解决,谢谢回答的同学
Feuda 2011-03-25
  • 打赏
  • 举报
回复
同学们????

81,115

社区成员

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

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