java 数据库问题 真晕 20

对数据库的简单操作刚做到查询这个功能就遇到问题了输入学号查询没问题但用姓名查询怎么没反应啊还有就是插入数据后数据库也没反应请教各位了下面是部分代码有问题的部分我给做注解了... 对数据库的简单操作 刚做到查询这个功能就遇到问题了 输入学号查询没问题
但用姓名查询怎么没反应啊 还有就是插入数据后数据库也没反应 请教各位了

下面是部分代码 有问题的部分我给做注解了
//按钮事件处理
public void actionPerformed(ActionEvent e) {
try {
String number = t[0].getText();
String pResult = t[1].getText();
String name = t[2].getText();
String result = t[3].getText();

if(e.getSource() == b[0]) {
if(number != "") {
int number1 = Integer.parseInt(number);
pps = conn.prepareStatement("select *from student where 学号 = ?");
pps.setInt(1, number1);
res = pps.executeQuery();

while(res.next()) {
int num1 = res.getInt(1); //???
String num2 = res.getString(2);
int num3 = res.getInt(3);
int num4 = res.getInt(4);

String str = "学号:" + String.valueOf(num1) + " 姓名:" + num2 + " 平时成绩:" +
String.valueOf(num3) + " 期末成绩:" + String.valueOf(num4) + "\n";
ta.setText(str);
}
}
else if(name != "") {// else if 未执行
stm = conn.createStatement();
res = stm.executeQuery("select *from student where 姓名 = '" + name + "'");

while(res.next()) {
int num1 = res.getInt(1);
String num2 = res.getString(2);
int num3 = res.getInt(3);
int num4 = res.getInt(4);

String str = "学号:" + String.valueOf(num1) + " 姓名:" + num2 + " 平时成绩:" +
String.valueOf(num3) + " 期末成绩:" + String.valueOf(num4) + "\n";
ta.setText(str);
}
}
}

else if(e.getSource() == b[1]) {//sql 语句未执行
pps = conn.prepareStatement("insert into student (学号, 姓名, 平时成绩, 期末成绩) values(?,?,?,?)");
pps.setInt(1, Integer.parseInt(number));
pps.setString(2, name);
pps.setInt(3, Integer.parseInt(pResult));
pps.setInt(4, Integer.parseInt(result));
pps.executeUpdate();
pps.close();

}
还是不行啊 name 到else if(name != "") { 之前都有值得 就是到了else if(name != "")进不去了
二楼说的换成局部变量也不行啊
展开
 我来答
godcomexxx
2009-09-18 · TA获得超过1205个赞
知道小有建树答主
回答量:651
采纳率:0%
帮助的人:627万
展开全部
如果说是输入学号查询没问题,输入姓名有问题的话
是否为编码格式的问题呢
楼主在获得前台输入的字符串(姓名)的时候,在控制台上打印一下看看,另外
else if(name != "")
可以换成
else if(!"".equals(name))
试一下
百度网友5476a41
2009-09-17 · TA获得超过883个赞
知道小有建树答主
回答量:1251
采纳率:0%
帮助的人:739万
展开全部
代码没有看完!
和你说下步骤 自己对对吧!
1.写好的SQL语句去数据库验证下!
2.测试jdbc是否能连接
3.用System.out.println();试你的参数到哪里了,是否得到你想要的值了!
4.要学会用debug
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loveweizaiwan
2009-09-17 · TA获得超过425个赞
知道小有建树答主
回答量:460
采纳率:0%
帮助的人:288万
展开全部
一样的问题....

可以看出程序里的ResultsSet、PrepareStatement、Statement都用的是全局变量,要知道这些都不能被抽取为类字段的。
所以你将每次获取到的地方从新声明一次,如:
PrepareStatement pps = conn.prepareStatement("insert into student (学号, 姓名, 平时成绩, 期末成绩) values(?,?,?,?)");
,那样应该不会出现你所说的情况了。
试试看.......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
广州海琳信息技术
2009-09-18
知道答主
回答量:15
采纳率:0%
帮助的人:0
展开全部
代码如果运行是没有抛异常的话:
那可能是如下错误
1:在你输入姓名的时候,学号控件的值不为空
才造成你的查询姓名是没有反映。
这是你的控制结构所致,当学号不为空,绝对不会走姓名的。
在使用
number != "" 最好将number 去掉空格 及trim下它
2:第二个为什么插入数据库不好使,就不大好说了,如果是插入数据库的语句是正确的话,你只能检查下你的控制逻辑,看看它有没有按你的逻辑执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Myu_Alberta
2009-09-18
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
我想应该是乱码的问题,你可以转码试一试~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式