Java数据库查询问题pstmt.setInt(1, mid)

student_Forever2010 2010-07-14 02:02:23
请各位看下下面的代码,看哪里出错了呢?

public class Search_Members2 extends ActionSupport{

public String searchMember2(){

private int mid; //声明却出现错误?


DbCon db=new DbCon();
Connection con=db.getCon();
PreparedStatement pstmt=null;
ResultSet rs=null;
ArrayList arr=new ArrayList();
String str="";
try {
pstmt=con.prepareStatement("select * from classMembers where mid=?");
pstmt.setInt(1, mid); //出现问题,要设置getter和setter方法
rs=pstmt.executeQuery();
while(rs.next()){
ClassMembers cm=new ClassMembers();
cm.setStudentNumber(rs.getString(2));
cm.setStudentName(rs.getString(3));
cm.setSex(rs.getString(4));
cm.setNation(rs.getString(5));
cm.setPolitical(rs.getString(6));
cm.setBirthplace(rs.getString(7));
cm.setPersonalNote(rs.getString(8));
}
ActionContext.getContext().put("member", arr);
str="success";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
str="error";
}finally{
db.close(con, pstmt, rs);
}
return str;
}
}


问题是:1、pstmt.setInt(1, mid); //出现问题,要设置getter和setter方法
这语句是什么意思呢?起什么作用呀?执行SQL语句后为啥要设置这个呢
2、若单设置了上面那语句后,mid出错(mid是主键),需要设置get和set方法,因此我在前面就声明mid,结果却出现错误:The operation is not applicable to the current selection.Select a field which is not declared as type variable or a type that declares such fields.
设置不了get和set方法,请问这是什么问题呢?

问题是多了点,请各位帮帮忙,谢谢啦~~
...全文
1794 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
还是不行呀。倘若给mid赋值的话,只能查询出该行记录,如果mid是其他的值的话,又没有办法输出了。
继续等待同仁们的解答~
Y870747126 2010-07-17
  • 打赏
  • 举报
回复
来学习下
xiaohebian 2010-07-17
  • 打赏
  • 举报
回复
只要 把这句 private int mid; 中 mid 随便赋个值问题就解决了,比如 private int mid=0;
因为在java中的局部变量需要初始化
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 hanliangdaiye 的回复:]
做个javaBean封装一些属性,通过set 和get来设置和获取属性,这是典型的DAO设计的思想。
[/Quote]
是设置了JavaBean了,但用Java的代码实现增删查改时也需要设置set和get方法的吧
hanliangdaiye 2010-07-15
  • 打赏
  • 举报
回复
做个javaBean封装一些属性,通过set 和get来设置和获取属性,这是典型的DAO设计的思想。
sadikaqy 2010-07-15
  • 打赏
  • 举报
回复
你的方法传个参数就好啦……
  • 打赏
  • 举报
回复
我再试试看~~感谢各位的关注~~
happyjava163com 2010-07-14
  • 打赏
  • 举报
回复
private int mid; -> int mid=22;

it‘s ok !
eve_zz 2010-07-14
  • 打赏
  • 举报
回复
[Quote]
pstmt.setInt(1, mid);
[/Quote]
mid这个变量也没有赋值。
eve_zz 2010-07-14
  • 打赏
  • 举报
回复
[Quote= student_forever2010]
private int mid; //声明却出现错误?
[/Quote]
局部变量怎么可以用修饰符啊。
at1943 2010-07-14
  • 打赏
  • 举报
回复
一般是传个Javabean或form的对象进来,通过这个对象的get方法得到这个对象的mid值,然后赋值给这个mid变量
simaa0106 2010-07-14
  • 打赏
  • 举报
回复
private int mid; //声明却出现错误?
把这句代码放在方法的外面。设置成类的属性。添加get,set方法。
因为外面可以在别的地方通过get,set方法对这个属性进行赋值。
这样的话你通过在别的地方对mid赋值以后,在这个类里你就可以在数据库里查询到有没有这个对象。
at1943 2010-07-14
  • 打赏
  • 举报
回复
局部变量需要赋值而且不能修饰
而且这个方法还要传个参数进来,不然变量mid不变,没意思、
危险的大猫 2010-07-14
  • 打赏
  • 举报
回复
对了,类的属性可以不用初始化,因为系统会给他初始化一些值,你可以百度一下,比如int类型初始化为0.但是在函数里面的局部变量.系统是不会给你初始化的,会报错,你要自己手动初始化.
危险的大猫 2010-07-14
  • 打赏
  • 举报
回复
问题1,setInt这是prepareStatement类的一个方法,不要设置什么getter和setter方法的. 这个方法主要是给你上面那个sql语句里面的未知参数(也就是'?')设置值,同样的还有setString之类的.
问题2,貌似你的mid没有初始化,这样是不对的,你要查询数据库里mid等于几呢,你都没给变量mid赋值.

问题并不是你说的那样,你理解错了.
at1943 2010-07-14
  • 打赏
  • 举报
回复
问题是:1、pstmt.setInt(1, mid); //出现问题,要设置getter和setter方法
这语句是什么意思呢?起什么作用呀?执行SQL语句后为啥要设置这个呢

上边pstmt=con.prepareStatement("select * from classMembers where mid=?");这里有个问号,可以有多个问号
pstmt.setInt(1, mid);作用是给这个问号设置一个int值,1代表第一个问号,可以用setString(1,xxx)给字符类型的?赋值


2、若单设置了上面那语句后,mid出错(mid是主键),需要设置get和set方法,因此我在前面就声明mid,结果却出现错误:The operation is not applicable to the current selection.Select a field which is not declared as type variable or a type that declares such fields.
设置不了get和set方法,请问这是什么问题呢?

mid是个变量,前面并没有定义,而且定义后要赋值,不然执行sql语句是就会出错。因为sql语句不全select * from classMembers where mid=
jiang521725 2010-07-14
  • 打赏
  • 举报
回复
局部变量需要赋值
daojie 2010-07-14
  • 打赏
  • 举报
回复
把private int mid改为 int mid=2;随便给个参数
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lianghaijian 的回复:]
问题1,setInt这是prepareStatement类的一个方法,不要设置什么getter和setter方法的. 这个方法主要是给你上面那个sql语句里面的未知参数(也就是'?')设置值,同样的还有setString之类的.
问题2,貌似你的mid没有初始化,这样是不对的,你要查询数据库里mid等于几呢,你都没给变量mid赋值.

问题并不是你说的那样,你理解错了.
[/Quote]
那要在数据库中先设置有mid 的值是否可以的呢~~~我尝试看

81,120

社区成员

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

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