登录
首页精彩阅读简单的java中JTable删除数据后序号移动问题
简单的java中JTable删除数据后序号移动问题
2017-10-23
收藏

简单的java中JTable删除数据后序号移动问题

尽管这个解决方案可能不是最佳,据一些比较厉害的人说会存在sql入等等问题,但是作为一个内部小工具,有些思想可供参考

我题目的意思表达尚不清楚,确切来说,我前几天想的是实现这样一个功能。譬如,jtable中现在存在三条数据,0 面包 1牛奶 2方便面。

现在我利用jtable中的getselectedrow方法,将其中的牛奶删除,然后jtable表格实现重绘,出现的数据为 0 面包 1 方便面

这里没有用到什么hibernate等框架,用的是纯jdbc。

所建数据库表格名称为rr,wor及num为其属性

public int update(String text)//获取要删除数据的序号,譬如1 牛奶的1
{
 GetConn getconn=new GetConn();//获取连接,为了封装,所以连接函数是独立开的
   Connection conn=getconn.getConn();
   int i=0;//i一定是在这里定义的
try{

     String sql="select * from rr where wor='"+text+"'";
Statement stat=conn.createStatement();
ResultSet rs=stat.executeQuery(sql);
while(rs.next())
{
i=rs.getInt("num");//查询后的结果给i赋值
System.out.print(i);//为了检查错误,我习惯性的插入一些输出语句检查中间运行结果是否出错
 }
conn.close();//关闭连接
}catch(Exception e)
{
e.printStackTrace();
}
return i;
}
public void updated(int index)//将要删除的序号传递作为该函数的参数
{
 GetConn getconn=new GetConn();//获取连接
   Connection conn=getconn.getConn();
     try{

     String sql="update rr set num=num-1 where num>'"+index+"'";//实现序号更改
Statement stat=conn.createStatement();
  stat.executeUpdate(sql);
conn.close();
}catch(Exception e)
{
e.printStackTrace();
}
}

主函数调用为:

new Repaint().updated(new Repaint().update(wor));//主调用,updated及update方法均为Repaint类的方法
主函数调用大概是这个样子,但是实际上应该是先获取int index=new Repaint().update(wor)
然后删除对应元素,然后再去调用updated方法,否则会获取不到wor元素,或者出现num相同的情况,在num为key时会出现错误的。
这个程序可能很简单,所以有什么错误欢迎一起讨论。

数据分析咨询请扫描二维码

客服在线
立即咨询