1. 程式人生 > >Oracle與jdbc增刪改查CRUD(Create-Read-Update-Delete)

Oracle與jdbc增刪改查CRUD(Create-Read-Update-Delete)

一、建立oracle資料庫使用者並建表,插入測試資料

1.啟動oracle監聽程式並連線oracle資料庫的服務

開啟我的電腦--管理--服務和應用程式--服務,找到服務

OracleOraDb11g_home1TNSListenerOracleServiceORCL,啟動。

啟動完成後可以重新整理,看一看“狀態”是否是“正在執行”,是則進行下一步。


2.開啟PL/SQL Developer,登陸oracle的管理員賬戶system


3.新建命令視窗,檢視當前使用者


4.檢視所有賬戶狀態:select username,account_status from dba_users;


5.進入

j1666使用者,檢視使用者下有哪些表


6.現在登陸管理員賬戶,在管理員賬戶下我們刪除j1666使用者及使用者下的表,查詢所有 使用者,看看是否刪除成功。


我剛才直接在命令視窗登陸system使用者,準備執行drop user j1666 cascde;

訊息顯示“無法刪除當前已連線的使用者”,後來我關閉PL/SQL,重新登陸管理員賬戶, 再執行,顯示User dropped”使用者刪除。

個人猜測,是在進入j1666賬戶後,從j1666 賬戶跳轉到system賬戶,j1666還是連線著的,不能刪除j1666;退出PL/SQL後重進system 賬戶,j1666沒有連線,可以刪除。(個人猜測,不做依據)

7.好,進入重點!建立j1666賬戶並授權,並在j1666賬戶下新建一個dept


8.j1666賬戶下的dept表新增幾條測試資料


記得插入資料後一定要commit提交,不提交的的話資料並沒有真正儲存。只能在當前 視窗查詢到資料,開啟一個新的命令視窗後,就查詢不到了。

二、在java專案中通過jdbc連線oracle資料庫,並對oracle資料庫執行增刪改查操作

1.MyEclipse中新建一個java專案:oracle_jdbc_01,並建立包和測試類。


2.找到Oracle安裝目錄的jdbc(D:\app\mfc\product\11.2.0\dbhome_1\jdbc\lib)

下的

ojdbc.jar包,複製到java專案並Build Path


3.編寫對資料庫操作的方法


4.編寫查詢方法

	/**
	 * 查詢oracle資料庫下j1666賬戶dept部門表的全部資料
	 */
	private static void t1() {
		Connection con = null;
		Statement st = null;
		ResultSet rs = null;
		try {
			//1.載入oracle資料庫驅動
			Class.forName("oracle.jdbc.driver.OracleDriver");
			//2.獲取資料庫連線
			con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","j1666","j1666");
			//3.獲取執行sql語句的平臺
			st = con.createStatement();
			//4.執行sql語句獲取結果集
			rs = st.executeQuery("select * from dept");
			//5.迴圈獲取結果集資料
			while(rs.next()){
				System.out.println(rs.getString("deptno")+"\t\t"+rs.getString("dname")+"\t\t"+rs.getString("loc"));
			}
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			//關閉rs
			if(rs != null){
				try {
					rs.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			//關閉st
			if(st != null){
				try {
					st.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			//關閉con
			if(con != null){
				try {
					con.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}

5.編寫新增方法
	/**
	 * 新增部門
	 */
	private static void t2() {
		Connection con = null;
		Statement st = null;
		try {
			//1.載入oracle資料庫驅動
			Class.forName("oracle.jdbc.driver.OracleDriver");
			//2.獲取資料庫連線
			con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","j1666","j1666");
			//3.獲取執行sql語句的平臺
			st = con.createStatement();
			//4.執行sql語句插入資料
			st.executeUpdate("insert into dept values(40,'研發69部','軟體新區 1069')");
			
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{			
			//關閉st
			if(st != null){
				try {
					st.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			//關閉con
			if(con != null){
				try {
					con.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
6.編寫修改方法
	/**
	 * 修改部門
	 */
	private static void t3() {
		Connection con = null;
		Statement st = null;
		try {
			//1.載入oracle資料庫驅動
			Class.forName("oracle.jdbc.driver.OracleDriver");
			//2.獲取資料庫連線
			con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","j1666","j1666");
			//3.獲取執行sql語句的平臺
			st = con.createStatement();
			//4.執行sql語句修改部門編號為40的部門
			st.executeUpdate("update dept set dname='研發40部',loc='軟體新區 1040' where deptno=40");			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{			
			//關閉st
			if(st != null){
				try {
					st.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			//關閉con
			if(con != null){
				try {
					con.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
7.編寫刪除方法
	/**
	 * 刪除部門
	 */
	private static void t4() {
		Connection con = null;
		Statement st = null;
		try {
			//1.載入oracle資料庫驅動
			Class.forName("oracle.jdbc.driver.OracleDriver");
			//2.獲取資料庫連線
			con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","j1666","j1666");
			//3.獲取執行sql語句的平臺
			st = con.createStatement();
			//4.執行sql語句刪除部門編號為40的部門
			st.executeUpdate("delete dept where deptno=40");			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{			
			//關閉st
			if(st != null){
				try {
					st.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			//關閉con
			if(con != null){
				try {
					con.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}

這樣通過jdbc連線oracle資料庫,實現對資料庫的增刪該查操作就全部完成了。^_^