请各位高手看看我写的这个程序,为什么只能删除和更行最后一行啊!!

bbbbjiba 2010-11-04 09:45:06
import java.sql.*;
import java.util.*;
public class EmployeeManager {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);

while(true)
{
System.out.println("1 添加员工");
System.out.println("2 删除员工");
System.out.println("3 查询员工");
System.out.println("4 更新员工信息");
System.out.println("0 退出");

try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/yuangong", "root","mozhe");
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
System.out.println("请输入选项");
int num=sc.nextInt();
if(num==0)
{
System.out.println("谢谢使用");
stmt.close();
con.close();
break;
}else if(num==1)
{
System.out.println("请输入员工id");
int id=sc.nextInt();
System.out.println("请输入姓名");
String name=sc.next();
System.out.println("请输入年龄");
int age=sc.nextInt();
System.out.println("请输入工资");
float salary=sc.nextFloat();
ResultSet rs=stmt.executeQuery("select * from employeeinfo");
rs.moveToInsertRow();
rs.updateInt("id", id);
rs.updateString("name", name);
rs.updateInt("age", age);
rs.updateFloat("salary", salary);
rs.insertRow();
rs.close();
stmt.close();
con.close();
}else if(num==2)
{
System.out.println("请输入要删除的员工id");
int id=sc.nextInt();
ResultSet rs=stmt.executeQuery("select * from employeeinfo where id=id");
rs.last();
rs.deleteRow();
rs.close();
stmt.close();
con.close();
}else if(num==3)
{
ResultSet rs=stmt.executeQuery("select * from employeeinfo");
System.out.println("id号"+"\t"+"姓名"+"\t"+"年龄"+"\t"+"工资");
while(rs.next())
{
System.out.print(rs.getInt("id")+"\t");
System.out.print(rs.getString("name")+"\t");
System.out.print(rs.getInt("age")+"\t");
System.out.println(rs.getFloat("salary"));

}
rs.close();
stmt.close();
con.close();
}else if(num==4)
{
System.out.println("输入要更改的姓名");
ResultSet rs=stmt.executeQuery("select * from employeeinfo where name=name");
rs.last();
System.out.println("输入更改后的年龄");
int age=sc.nextInt();
rs.updateInt("age", age);
System.out.println("输入更改后的工资");
float salary=sc.nextFloat();
rs.updateFloat("salary", salary);
rs.updateRow();
rs.close();
stmt.close();
con.close();
}


}
catch(Exception e)
{
e.printStackTrace();
}
}
}



}
...全文
53 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuanhua66 2010-11-05
  • 打赏
  • 举报
回复
汗。,。。
貌似 你直接用While(rs.last()){}就可以解决了。。
qybao 2010-11-04
  • 打赏
  • 举报
回复
else if(num==2)
{
System.out.println("请输入要删除的员工id");
int id=sc.nextInt();
ResultSet rs=stmt.executeQuery("select * from employeeinfo where id=id");
rs.last(); //你把游标设置到最后一行
rs.deleteRow(); //然后删除,当然只能删除一行了
rs.close();
stmt.close();
con.close();

更新也是一样的

58,452

社区成员

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

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