[問題] 關於jdbc的executeUpdate()所回傳的值
又來打擾各位了,這幾天用了jdbc去使用mysql,最近遇到一些問題了...
首先,介紹操作環境:
1.client server的模式,使用ObjectOutputStream、ObjectOutputStream
2.使用Serializable物件來包裝client server所傳遞的資料,其內部用String Array來存
放所有資料&資訊
3.client端是用來表現資料以及讓使用者修改資料,當使用者在client端的UI上操作的時
候client端會把使用者的操作組成合理的sql指令,之後再包裝到一個Serializable物件
裡面,然後把這個Serializable物件傳給server端
4.server端用來實際存取資料庫,當server端收到client傳過來的物件後從中取出包在裡
面的sql指令,然後依指令存取資料庫,最後再把結果包裝到Serializable物件裡面,然
後把這個物件回傳給client端
5.最後client端在依照收到的結果去判斷sql的執行狀況以及其他處理
-------------------------------------------------------------------------------
狀況說明:
int result = statement.executeUpdate(cmd);
原本測試的方法是事先在mysql裡直接建好資料再去測試SELECT、INSERT、DELETE、UPDATE
這些基本指令,到這邊都很順利,指令都正常執行,但是當我測試到把資料表清空之後再
用我寫的UI去新增資料時才發現了一個問題,按照我所查到的資料是說 executeUpdate()
執行之後回傳的是一個int,這個int所代表的是影響到的資料筆數,當我在server端print
的時候result的值一直都是1(因為我每次都只動一筆資料),但是當我把這個result的值送
到client端後再print出來的話他就會變成"資料表執行sql指令前已有的資料數",簡單的
說假如我 INSERT/DELETE/UPDATE 前存在7筆資料的話,執行完之後server端一律都print
出"1",但是client都會print出"7",請問是哪邊出問題?還是我對他result的理解有錯誤?
麻煩各位幫幫忙了,因為這個回傳的result值會影響到我client判斷指令執行狀況以及後
續的處理,謝謝各位~~~感恩~!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.33.236
※ 編輯: risker760915 來自: 118.170.33.236 (12/24 20:05)
→
12/24 21:43, , 1F
12/24 21:43, 1F
→
12/24 21:45, , 2F
12/24 21:45, 2F
→
12/24 21:47, , 3F
12/24 21:47, 3F
→
12/24 21:52, , 4F
12/24 21:52, 4F