{eval=Array;=+count(Array);}
題主給的問題描述太過簡短,那么答主只能根據自己理解的方向來說說可能出現錯誤的原因:
一般情況下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語句做的是無用操作,什么是無用操作呢?現在數據庫里面已經沒有了學號為1的學生,但是你還刪除這條數據,數據庫肯定沒有反應。不排除有這種可能但是幾率比較小。也有可能你傳遞過來的刪除,修改的條件的條件數據,出現問題也有可能導致刪除或者修改失敗。
如果你是用jdbc去做的,那很有可能sql語句編寫有問題,因為sql語句的字符串拼接其中有很多“ ”和‘ ’的拼接:
比如上圖看到的,ssex這個字段在數據庫中是一個字符類型,所以在sql語句中需要用‘ ’括起來,這里還要拼一個獲取過來的條件。所以‘ ’和“ ”之間的拼接真的很容易出問題。
代碼代碼,坐等代碼
總結:出錯的具體原因,真的是需要查看代碼才能具體解決,這里能給出來的提示也很有限。以上的出錯的原因也是答主自己能給出的幾個,希望能幫到題主。
如果有小伙伴有其它的提示,請在評論區留言,或者點個關注我們一起探討探討。
這個問題的原因可能不止一個,看到同行回答的也都有道理,但有道理的不一定能解決這個問題,我從實際的應用情況,說明一下碰到的這個問題,或許也是一種啟發。
Access數據庫也稱為桌面型的數據庫,是Microsoft Office的一個組件,全稱為Microsoft Office Access,這個數據庫建立比較簡單,建數據表時對主鍵沒有特殊的要求,對于沒有建主鍵的數據表,當你在用Access所帶的VBA語言進行開發時,使用SQL語言進行相關的操作是沒有問題的。
但是,當你用其他語言連接到Access數據庫時,一定要注意,有些語言一定要在有主鍵的情況下才能進行SQL語句操作,不然就有可能表面操作成功,而實際上沒有任何改變。
對于JAVA我不太熟悉,只此是一點開發過程中的經驗而已,僅作參考。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答1
回答0
回答0
回答