
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 != "")进不去了
二楼说的换成局部变量也不行啊 展开
但用姓名查询怎么没反应啊 还有就是插入数据后数据库也没反应 请教各位了
下面是部分代码 有问题的部分我给做注解了
//按钮事件处理
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 != "")进不去了
二楼说的换成局部变量也不行啊 展开
5个回答
展开全部
如果说是输入学号查询没问题,输入姓名有问题的话
是否为编码格式的问题呢
楼主在获得前台输入的字符串(姓名)的时候,在控制台上打印一下看看,另外
else if(name != "")
可以换成
else if(!"".equals(name))
试一下
是否为编码格式的问题呢
楼主在获得前台输入的字符串(姓名)的时候,在控制台上打印一下看看,另外
else if(name != "")
可以换成
else if(!"".equals(name))
试一下
展开全部
代码没有看完!
和你说下步骤 自己对对吧!
1.写好的SQL语句去数据库验证下!
2.测试jdbc是否能连接
3.用System.out.println();试你的参数到哪里了,是否得到你想要的值了!
4.要学会用debug
和你说下步骤 自己对对吧!
1.写好的SQL语句去数据库验证下!
2.测试jdbc是否能连接
3.用System.out.println();试你的参数到哪里了,是否得到你想要的值了!
4.要学会用debug
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一样的问题....
可以看出程序里的ResultsSet、PrepareStatement、Statement都用的是全局变量,要知道这些都不能被抽取为类字段的。
所以你将每次获取到的地方从新声明一次,如:
PrepareStatement pps = conn.prepareStatement("insert into student (学号, 姓名, 平时成绩, 期末成绩) values(?,?,?,?)");
,那样应该不会出现你所说的情况了。
试试看.......
可以看出程序里的ResultsSet、PrepareStatement、Statement都用的是全局变量,要知道这些都不能被抽取为类字段的。
所以你将每次获取到的地方从新声明一次,如:
PrepareStatement pps = conn.prepareStatement("insert into student (学号, 姓名, 平时成绩, 期末成绩) values(?,?,?,?)");
,那样应该不会出现你所说的情况了。
试试看.......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码如果运行是没有抛异常的话:
那可能是如下错误
1:在你输入姓名的时候,学号控件的值不为空
才造成你的查询姓名是没有反映。
这是你的控制结构所致,当学号不为空,绝对不会走姓名的。
在使用
number != "" 最好将number 去掉空格 及trim下它
2:第二个为什么插入数据库不好使,就不大好说了,如果是插入数据库的语句是正确的话,你只能检查下你的控制逻辑,看看它有没有按你的逻辑执行
那可能是如下错误
1:在你输入姓名的时候,学号控件的值不为空
才造成你的查询姓名是没有反映。
这是你的控制结构所致,当学号不为空,绝对不会走姓名的。
在使用
number != "" 最好将number 去掉空格 及trim下它
2:第二个为什么插入数据库不好使,就不大好说了,如果是插入数据库的语句是正确的话,你只能检查下你的控制逻辑,看看它有没有按你的逻辑执行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想应该是乱码的问题,你可以转码试一试~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询