JDBC-ODBC 数据库连接 数据更新问题

pimkle 2013-01-11 07:07:32
用的是swing 可视化框架

创建了一个JFrame,名字叫jf,上面创建了一个JTable,名字叫table.

首先是一个二维的Object对象 tableData[][],

先在tableData里放进数据库里面的数据,然后再把table用tableData初始化:
table = new JTable(tableData, columnTitle);
columnTitle是几个字符串,表示表格的菜单的

我在表格的第二列创建了一个监听,如果某一行的第二列的数据被删光了,那么这一行的数据就从数据库中删除,
这样也成功了.

问题就是数据库显示的更新,我打开过本地的.mdb文件,利用sql语句执行玩delete语句的时候,.mdb文件里面相应内容确实被删除了.

那剩下的就是在JFrame jf上显示出这个变化了,jf上的数据不会自动更新,那我就用了这个方法:
jf.dispose();
new 窗口();//窗口是包含这一大堆东西的主类

问题就出现了!!!
每次使用这种更新,数据更新都会慢一步,慢一步啊.

我执行了两次删除操作,第一次执行完删除操作,JFrame上没有任何显示,虽然重新启动了一下JFrame页面,没有用,等到第二次的删除操作执行完毕,第一次执行的操作才在JFrame上显示,依此类推.

一开始我以为这样单纯的new 窗口();方法太简单了,所以我就又执行了一次数据读取操作,直接对tableData数据进行修改,就是直接再执行一次ODBC-JDBC操作,把最新的数据库上的数据更新在tableData上面,可是就算是这样,它的效果和new 窗口();是一样的!!! 还是慢一步,我真的就不知道是怎么回事了.

求大神帮忙!
...全文
190 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cchvsgame 2013-01-15
  • 打赏
  • 举报
回复
数据库操作需要提交
张某码 2013-01-14
  • 打赏
  • 举报
回复
引用 5 楼 pimkle 的回复:
引用 3 楼 zhang5059 的回复:2楼说的在理!你从新获取数据库中的数据然后显示到table上最后调用下table.repaint();(从新画一下table)就可以实现时时更新了。 回复3楼,之前有过updateUI()之类的函数,我统统都用过了,不行,现在你给出的table.repaint(),也不起效. 貌似是在eclipse上运行操作的时候,那条记……
应该不会啊。只要你没有把他的自动提交给设置为false,他是自动提交的,(也就是你一执行那段SQL语句就会被更新到数据库当中的),你可以试着把从新获取的数据打印出来看看,是不是你想要的那些数据。(然后就看你是不是真确的把这些数据显示在table中了)
熊猫大虾 2013-01-13
  • 打赏
  • 举报
回复
引用 8 楼 xtfgy2012 的回复:
引用 5 楼 pimkle 的回复:引用 3 楼 zhang5059 的回复:2楼说的在理!你从新获取数据库中的数据然后显示到table上最后调用下table.repaint();(从新画一下table)就可以实现时时更新了。 回复3楼,之前有过updateUI()之类的函数,我统统都用过了,不行,现在你给出的table.repaint(),也不起效. 貌似是在e……
xtfgy2012 2013-01-13
  • 打赏
  • 举报
回复
引用 5 楼 pimkle 的回复:
引用 3 楼 zhang5059 的回复:2楼说的在理!你从新获取数据库中的数据然后显示到table上最后调用下table.repaint();(从新画一下table)就可以实现时时更新了。 回复3楼,之前有过updateUI()之类的函数,我统统都用过了,不行,现在你给出的table.repaint(),也不起效. 貌似是在eclipse上运行操作的时候,那条记……
数据库里面有数据了,不代表你已经提交更新了,你是不是忘了提交了
xtfgy2012 2013-01-13
  • 打赏
  • 举报
回复
引用 4 楼 pimkle 的回复:
引用 2 楼 xtfgy2012 的回复:为什么要这样更新?你不就是删除了一行嘛,直接更新你的table就好了 重建整个frame你不觉得伤筋动骨吗? 回复2楼,不只是这样,在删除或者插入了一条记录之后,这个table我还要进行插入和删除操作,如果前面的没有显示好,后面的插入或者删除会出乱子.
你想办法控制好table的展现就好了,明明是操作了一行数据,结果整个界面和数据再重构 怎么都不是个好办法
hua212 2013-01-13
  • 打赏
  • 举报
回复
引用 1 楼 QQ1048400129 的回复:
java 图形化部分略过,无法帮你,帮忙顶!
同顶
pimkle 2013-01-13
  • 打赏
  • 举报
回复
引用 3 楼 zhang5059 的回复:
2楼说的在理!你从新获取数据库中的数据然后显示到table上最后调用下table.repaint();(从新画一下table)就可以实现时时更新了。
回复3楼,之前有过updateUI()之类的函数,我统统都用过了,不行,现在你给出的table.repaint(),也不起效. 貌似是在eclipse上运行操作的时候,那条记录还没有插入进去,虽然我看到数据库上面已经是更新完毕了.
pimkle 2013-01-13
  • 打赏
  • 举报
回复
引用 2 楼 xtfgy2012 的回复:
为什么要这样更新?你不就是删除了一行嘛,直接更新你的table就好了 重建整个frame你不觉得伤筋动骨吗?
回复2楼,不只是这样,在删除或者插入了一条记录之后,这个table我还要进行插入和删除操作,如果前面的没有显示好,后面的插入或者删除会出乱子.
张某码 2013-01-12
  • 打赏
  • 举报
回复
2楼说的在理!你从新获取数据库中的数据然后显示到table上最后调用下table.repaint();(从新画一下table)就可以实现时时更新了。
xtfgy2012 2013-01-12
  • 打赏
  • 举报
回复
为什么要这样更新?你不就是删除了一行嘛,直接更新你的table就好了 重建整个frame你不觉得伤筋动骨吗?
我明明就不配 2013-01-12
  • 打赏
  • 举报
回复
java 图形化部分略过,无法帮你,帮忙顶!

62,614

社区成员

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

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