一个没有人回答的问题!!
JTable中的数据如何保存到数据库中去(先实现在表中修改,最后再保存到数据库中去)
这个问题,网上各位仁兄仁姐,没一位可以回答我吗?
能不能给我一个相应的例子,。
谢谢大家,了,帮小弟一把!!!
问题点数:100、回复次数:21Top
1 楼rickhunterchen(千山鸟飞绝)回复于 2006-05-03 10:24:35 得分 0
这个很难吗,不就是存到数据库中吗,用jdbc操作数据库不就可以了。Top
2 楼idoi(河北浪人)回复于 2006-05-03 11:13:27 得分 0
路过,帮顶.Top
3 楼loneroad()回复于 2006-05-03 11:58:11 得分 0
千山鸟飞绝,说得太简单了,
先修改 ,,修改完后再保存,,,这是第一点
保存,如何保存?还是干脆全部重写进数据库(这个开销太大了),还是把改动的部分存入数据库,这是第二点
如何知道哪个部分改动了,需要和数据库对照吗?这是第三点
希望各位能提供给小弟一个完善的实现机制,,谢谢啦!(最好有源程序)
Top
4 楼kingofworl(良辰美景虚度)回复于 2006-05-03 14:49:58 得分 0
帮顶Top
5 楼rickhunterchen(千山鸟飞绝)回复于 2006-05-03 17:51:22 得分 0
我不懂这有多难。可能我没理解楼主的意图。
你修改数据库,到后台不就是update,那你还准备怎么用呢?Top
6 楼f_acme(沧海一声笑)回复于 2006-05-03 20:24:30 得分 0
楼主的意思是如果把JTable中所有的数据都去update一次,很浪费时间。
用一个标记来标记JTable中的某一行是否有改变,然后再来update,不知可行不?Top
7 楼didoleo(冷月无声)回复于 2006-05-04 10:54:57 得分 0
先删除表中已有jtable中的数据(即使不存在,删除也无妨),再插如jtable中的数据。
Top
8 楼diannaomingong(电脑民工)回复于 2006-05-05 11:04:37 得分 0
我正好也在做这样的事情
我是Java+Mysql,首先通过一个JDBCAdapter将数据查询出来后,放到一个Object[][]里面
然后String Str_ColumnNames = conn.getColumnNames
再new一个TableModel(Object[][],ColumnNames)
再new JTable(TableModel)
改动的地方,用监听获取改动的地方的row,column,
然后conn.setValueAt(row,column)
/*如果上面这句执行成功就继续执行下句,否则下句别执行,以免JTable的数据改了数据库没动,骗自己了*/
反正涉及到数据库操作的,JTable的Model和数据库里面数据都要操作,两头都要抓
Top
9 楼shuwenjiang(月满西楼)回复于 2006-05-05 11:57:02 得分 0
up
Top
10 楼heronce(一户侯)回复于 2006-05-05 21:49:00 得分 0
在修改JTable的值的时候同步完成对数据库的操作不就不存在先后问题了吗?Top
11 楼yz790724(想想)回复于 2006-05-07 01:11:16 得分 0
按楼上说的,会降低速度的Top
12 楼LexChen(阿修罗)回复于 2006-05-08 09:42:28 得分 0
简单问题复杂话,也许因此每人回答吧Top
13 楼zclgod(春风化雷)回复于 2006-05-11 10:08:02 得分 0
帮顶Top
14 楼cookslowly()回复于 2006-06-03 20:10:00 得分 0
我不管
Top
15 楼UnAgain()回复于 2006-06-04 16:49:57 得分 0
我可以给你个解决方案,代码就免了。这个问题很有通用性,解决很简单,但是解决的好,并且能适用大多数应用却不是很容易。如果我写出来的话,不会给你,呵呵。
把问题说的直接点,这是一个PB的DataWindow的概念。你在网上搜索Web DataWindow,可能会找到解决方案。
这个问题首先要用到Data Cache。JTable本身只是提供显示数据的界面,而没有提供Cache。PowerBuilder的DataWindow里为数据提供了4个Buffer,Original!, Primary!, Deleted!, Filter!。其中Deleted!保存删除的记录。
并且,DataWindow还记录每个buffer中的,每条记录、每个字段的状态,有
New!
NewModified!
NotModified!
DataModified!
一旦提交,DataWindow根据数据所处的Buffer,以及这些状态值,生成相应的SQL语句,提交到数据库。
很复杂。你可以根据自己当前面临的问题,在功能上做一些取舍。有的实现是用XML作为本地的数据Buffer,利用XML的特性记录、检索数据的状态及值。
Top
16 楼swantt(闲人)回复于 2006-06-06 09:01:35 得分 0
没怎么写过表格的这种程序。Top
17 楼sldswh()回复于 2006-06-06 15:02:32 得分 0
没有见过,顶!Top
18 楼jsjboss(沉珂)回复于 2006-06-07 12:17:46 得分 0
mark。。。Top
19 楼benewu(旭彬)回复于 2006-06-07 13:21:27 得分 0
全部UPDATE,HIBERNATE就是这样做的.Top
20 楼diggywang(Miner Lover!)回复于 2006-06-08 16:47:27 得分 0
楼上的,真的假的?Top
21 楼leafxx(因为音乐,所以自由)回复于 2006-06-08 17:11:53 得分 0
这个问题很简单呀,JTable有监听器,如果哪一行改变了,可以立即取得具体的行和数据
以前在学校里用swing做了一个仿windows画板的程序,用JTable做图层显示,动态反映出画板上图层的变化,但现在代码早就忘掉了,要回去查一下 :P
现在只记得有个好像有个什么xxx.fireModify的东东
还有楼上的,是谁告诉你hibernate是全部update整张表的数据的?Top




