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数据库,实现对数据库的增删该查操作就全部完成了。^_^







  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值