{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

Java連接access為什么只有select語句有效果增改刪成功但實際數據不變?

atinosunatinosun 回答0 收藏1
收藏問題

2條回答

yangrd

yangrd

回答于2022-06-28 15:03

題主給的問題描述太過簡短,那么答主只能根據自己理解的方向來說說可能出現錯誤的原因:

代碼的原因

一般情況下Java連接數據庫用的都是jdbc,不知道題主的用最基本的jdbc去寫的連接access還是使用框架去配置連接的。

  • 使用框架做配置連接

題主也提到了查詢能正常查詢,那就證明配置信息內容是完全沒有問題的,能夠正常使用。那這樣的話有可能你做增,刪,改的的時候對應的數據本來是沒有刪除,你的判斷寫的有問題導致,但是這個可能性應該不大。那就可能是sql語句的問題了,下面在詳細的說話sql語句的問題。

  • 使用最原始的jdbc操作

能在增刪改上面成功,沒有報錯那證明你的代碼敲的是對的,但是你的對應的引用相互調用多次,可能導致錯誤,打個比喻:Connection conn=new Connection(連接數據庫的字符串);

Statement sta=conn.createStatement();

String sql="添加sql語句";

int count=sta.excute(sql);

然后在下面你可能在次用到Statement對象:

String sql="刪除sql語句";

int count=sta.excute(sql);

這個時候你多次使用同一個Statement對象很大可能會出現異常

在可能是你操作的數據庫和你查看的數據庫不是同一個,剛好都用同樣的表格:

比如:

Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/exam?characterEncoding=UTF-8","root", "admin");

你現在操作的是exam數據庫里面的表格,但是你現在查看的卻是其它數據庫;這個可能性也有但是估計也不大。

jdbc和比較傳統的hibernate

sql語句的問題

  • 如果你是用框架是做的那很大的可能是你配置的sql語句做的是無用操作,什么是無用操作呢?現在數據庫里面已經沒有了學號為1的學生,但是你還刪除這條數據,數據庫肯定沒有反應。不排除有這種可能但是幾率比較小。也有可能你傳遞過來的刪除,修改的條件的條件數據,出現問題也有可能導致刪除或者修改失敗。

  • 如果你是用jdbc去做的,那很有可能sql語句編寫有問題,因為sql語句的字符串拼接其中有很多“ ”和‘ ’的拼接:

比如上圖看到的,ssex這個字段在數據庫中是一個字符類型,所以在sql語句中需要用‘ ’括起來,這里還要拼一個獲取過來的條件。所以‘ ’和“ ”之間的拼接真的很容易出問題。


代碼代碼,坐等代碼

總結:出錯的具體原因,真的是需要查看代碼才能具體解決,這里能給出來的提示也很有限。以上的出錯的原因也是答主自己能給出的幾個,希望能幫到題主。

如果有小伙伴有其它的提示,請在評論區留言,或者點個關注我們一起探討探討。

評論0 贊同0
  •  加載中...
tinysun1234

tinysun1234

回答于2022-06-28 15:03

這個問題的原因可能不止一個,看到同行回答的也都有道理,但有道理的不一定能解決這個問題,我從實際的應用情況,說明一下碰到的這個問題,或許也是一種啟發。

Access數據庫也稱為桌面型的數據庫,是Microsoft Office的一個組件,全稱為Microsoft Office Access,這個數據庫建立比較簡單,建數據表時對主鍵沒有特殊的要求,對于沒有建主鍵的數據表,當你在用Access所帶的VBA語言進行開發時,使用SQL語言進行相關的操作是沒有問題的。

但是,當你用其他語言連接到Access數據庫時,一定要注意,有些語言一定要在有主鍵的情況下才能進行SQL語句操作,不然就有可能表面操作成功,而實際上沒有任何改變。

對于JAVA我不太熟悉,只此是一點開發過程中的經驗而已,僅作參考。

評論0 贊同0
  •  加載中...

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<