2個(gè)方案吧:
成都創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站建設(shè)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元旬陽做網(wǎng)站,已為上家服務(wù),為旬陽各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
1.用數(shù)據(jù)庫的 存儲過程 ,相當(dāng)于數(shù)據(jù)庫的函數(shù),這里面可以加 邏輯判斷
這個(gè)方法比較少用
2.在客戶端分2步訪問數(shù)據(jù)庫,第一步登錄,根據(jù)返回的數(shù)據(jù),再決定是否 更新數(shù)據(jù)庫,不是在sql語句中邏輯判斷 一般都這么用
有測試框架。mock可以模擬測試而不對數(shù)據(jù)庫操作省去還原數(shù)據(jù)庫的麻煩?;蛘咧苯泳帉慾unit測試操作數(shù)據(jù)庫。但是這樣要在操作后還原數(shù)據(jù)庫。
你的代碼寫的很亂。
首先if (jpf3.equals(jpf2)) {
if (jpf1.equals(mima)) {
String str="update 人員信息表 set 密碼 = '001' where 人員編號 = '001'; ";
//(如果這句換成: String str="update 人員信息表 set 密碼 = 'jpf3' where 人員編號 = 'jtf1'; ";就不會修改成功。 為什么啊? 求高人??!正確格式是什么呢?
)
Statement statement =con.createStatement();
int s=statement.executeUpdate(str);
JOptionPane.showMessageDialog(null, "修改成功");
這一部分是要寫在try{}里面的,finally{}里面要對PreparedStatement進(jìn)行判斷,要關(guān)閉。
你的sql語句里面使用的是變量
如果變量是String類型的: String str="update 人員信息表 set 密碼 = '"+jpf3+"' where 人員編號 = '"+jtf1+"';
如果是int,long,double之類的:String str="update 人員信息表 set 密碼 = "+jpf3+" where 人員編號 = "+jtf1+";