Oracle與jdbc增刪改查CRUD(Create-Read-Update-Delete)
一、建立oracle資料庫使用者並建表,插入測試資料
1.啟動oracle監聽程式並連線oracle資料庫的服務
開啟我的電腦--管理--服務和應用程式--服務,找到服務
OracleOraDb11g_home1TNSListener和OracleServiceORCL,啟動。
啟動完成後可以重新整理,看一看“狀態”是否是“正在執行”,是則進行下一步。
2.開啟PL/SQL Developer,登陸oracle的管理員賬戶system
3.新建命令視窗,檢視當前使用者
5.進入
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資料庫,實現對資料庫的增刪該查操作就全部完成了。^_^