一、创建oracle数据库用户并建表,插入测试数据
1.启动oracle监听程序并连接oracle数据库的服务
打开我的电脑--管理--服务和应用程序--服务,找到服务
OracleOraDb11g_home1TNSListener和OracleServiceORCL,启动。
启动完成后可以刷新,看一看“状态”是否是“正在运行”,是则进行下一步。
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();
}
}
}
}
/**
* 添加部门
*/
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数据库,实现对数据库的增删该查操作就全部完成了。^_^