1. 程式人生 > >Java對資料庫增刪改查操作

Java對資料庫增刪改查操作

基於前面練習所出現的問題對其進行修改,可以成功的對資料庫資訊進行增刪改查四項基本操作。

以下是部分修改的程式碼,整體的程式碼詳見前天的練習2。初始介面就不說了。

首先來到初始介面,點選瀏覽,會出現資料庫的資訊。


前面所出現的問題是,點選瀏覽之後,不斷的重複出現資訊新增在表單。 之後在看程式碼明白錯誤之後,將其解決。
if (e.getSource()==view){
			ResultSet rs=null;
			String v;
			rs=new UserManage().view();
			try {
				while (rs.next()){
					table.setValueAt(rs.getString("user_name"), ii, 0);
					table.setValueAt(rs.getString("user_type"), ii, 1);
					table.setValueAt(rs.getString("startdate"), ii, 2);
					if (rs.getBoolean("valid")==true)
						v="啟用";
					else
						v="停用";
					table.setValueAt(v, ii, 3);
					ii++;
				}
				ii=0;									//沒修改之前,點選瀏覽,不斷出現數據信息,結果在這裡加入ii=0後,解決了。
			} catch (SQLException e2) {
				e2.printStackTrace();
			}
		}
在表單新增一次全部資訊之後,應該對行數進行重置清零,這樣就可以確保不斷點選瀏覽只看到一組資料。 然後,註冊,就是增加。 要增加的資訊在上面輸入,然後點選註冊,顯示註冊成功。表單下面增加一行新資料

之前的程式碼是就根本沒有認真工作,是敷衍學者的程式碼,在我頓悟後才明白,可能不是敷衍,是幾個變數我沒弄明白究竟是幹什麼,所以就按自己想的程式碼解決了
		if (e.getSource()==regis){
			if (new UserManage().addUsers(u_name, u_password, u_type, date, flag)){
				ResultSet rs=null;												
				String v;
				rs=new UserManage().view();
				try {
					while (rs.next()){
						table.setValueAt(rs.getString("user_name"), ii, 0);
						table.setValueAt(rs.getString("user_type"), ii, 1);
						table.setValueAt(rs.getString("startdate"), ii, 2);
						if (rs.getBoolean("valid")==true)
							v="啟用";
						else
							v="停止";
						table.setValueAt(v, ii, 3);
						ii++;
					}
					ii=0;	
				} catch (SQLException e5){
					e5.printStackTrace();
				}
				
			}
		}
新增成功之後,用ResultSet,重新新增表單即可。 後面的修改其實也是一個意思的,修改成功之後,重新新增表單。 修改的時候,點選修改的一行,把修改的使用者名稱寫入,然後輸入新的資訊,點選修改,出現修改成功,新的資訊會出現。
if (new UserManage().isExist(name)){
這裡之前寫的是(!引數),結果後來看到一想,他喵的應該是名字存在了,是真的,就執行啊。都沒有這個人的話,何來修改呢。
		if (e.getSource()==edit){				//修改成功之後,表單顯示問題
			if (u_name.equals("")){
				u_name=(String)table.getValueAt(table.getSelectedRow(), 0);
			}
			if (new UserManage().updateUser(u_name, u_password, u_type, date, flag)){
				ResultSet rs=null;							//解決!之前修改後哦,是沒把資訊重新新增表單
				String v;
				rs=new UserManage().view();
				try {
					while (rs.next()){
						table.setValueAt(rs.getString("user_name"), ii, 0);
						table.setValueAt(rs.getString("user_type"), ii, 1);
						table.setValueAt(rs.getString("startdate"), ii, 2);
						if (rs.getBoolean("valid")==true)
							v="啟用";
						else
							v="停用";
						table.setValueAt(v, ii, 3);
						ii++;
					}
					ii=0;									
				} catch (SQLException e2) {
					e2.printStackTrace();
				}
			}
		}
最後的刪除,點選要刪除的行,點選刪除按鈕,刪除成功。
之前問題就是刪除後,表單不更新或者更新有問題
		if (e.getSource()==delete){			//目前刪除後表單不跟新
			int k=0;
			int r=table.getSelectedRow();
			String ss=(String)table.getValueAt(r, 0);
			
			if (new UserManage().deleteUser(ss)){
				ResultSet rs=null;
				String v;
				rs=new UserManage().view();
				try {
					while (rs.next()){
						table.setValueAt(rs.getString("user_name"), k, 0);
						table.setValueAt(rs.getString("user_type"), k, 1);
						table.setValueAt(rs.getString("startdate"), k, 2);
						if (rs.getBoolean("valid")==true)
							v="啟用";
						else
							v="停用";
						table.setValueAt(v, k, 3);
						k++;
					}
					table.setValueAt("",k,0);				//問題從這裡解決了,不過準確的來說是把上面while
					table.setValueAt("",k,1);				//迴圈裡的k確定明白咯,然後在這四行進行刪除後的表單
					table.setValueAt("",k,2);				//跟新,但是這裡的更新不能說是更新,因為上面while裡的內容
					table.setValueAt("",k,3);				//就相當於更新,這裡就把最後一個多餘出來的表單設成空的即可		
					k=0;
				} catch (SQLException e2) {
					e2.printStackTrace();
				}
			}
		}
刪除之後,重新新增表單,最後一行置為空即可。 以上一通操作之後,資料庫中的資訊,和表單顯示資訊一致。
在新增那裡,出現了一個插曲
String sql="insert into userInfo(user_name,user_pass,user_type,startdate,valid)values ('"+name+"','"+word+"','"+type+"','"+date+"',"+f+")";
開始這裡出現了類似這個錯誤 MySQL遇到check the manual that corresponds to your MySQL server version for the right syntax錯誤
找了一會,有的是關鍵字命名問題,而我的這裡是valid後面多了一個  ,    就是它害的,新增語句會有問題。所以,掌握sql語句,不要隨便換行,認真仔細呢。