DBUtil类
package com.zp.test;
import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtil {
//定义三个变量
private static Connection ct = null;
private static PreparedStatement ps = null;
private static ResultSet rs = null;
//连接数据库的用户名,密码,url,驱动
private static String username = "scott";
private static String password = "123";
private static String driver ="oracle.jdbc.driver.OracleDriver";
private static String url = "jdbc:oracle:thin:@127.0.0.1:1521:orclhsp";
//使用静态块加载驱动(原因:加载驱动需要时间,没有必要每次连接都加载一次驱动,连接可以不停的使用,使用完后关闭)
static {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//完成查询方法
//sql可能是:select * from emp where ename=?,parameters参数就是传过来的?值
public static ResultSet executeQuery(String sql,String[] parameters) {
try {
//得到连接
ct = DriverManager.getConnection(url,username,password);
//创建ps对象<==>sql对象
ps = ct.prepareStatement(sql);
//根据实际情况对sql语句?赋值,如果paramenters不为空,再赋值
if(parameters!=null) {
for(int i=0;i<parameters.length;i++) {
ps.setString(i+1, parameters[i]);//索引从1开始的
}
}
rs = ps.executeQuery();
} catch (Exception e) {
e.printStackTrace();
//抛出运行时异常
throw new RuntimeException(e.getMessage());
}finally {
}
return rs;
}
//统一的更新,删除,查找方法
public static void executeUpdate(String sql,String[] parameters) {
try {
//得到连接
ct = DriverManager.getConnection(url,username,password);
//创建ps对象<==>sql对象
ps = ct.prepareStatement(sql);
//根据实际情况对sql语句?赋值,如果paramenters不为空,再赋值
if(parameters!=null) {
for(int i=0;i<parameters.length;i++) {
ps.setString(i+1, parameters[i]);//索引从1开始的
}
}
ps.executeUpdate();
System.out.println("成功");
} catch (Exception e) {
e.printStackTrace();
//抛出运行时异常
throw new RuntimeException(e.getMessage());
}finally {
//关闭资源
close(rs, ps, ct);
}
}
public static Connection getCt() {
return ct;
}
public static PreparedStatement getPs() {
return ps;
}
//把关闭资源写成一个函数
public static void close(ResultSet rs,PreparedStatement ps,Connection ct) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rs = null;//最后写上
}
if(ps!=null) {
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ps = null;
}
if(ct!=null) {
try {
ct.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ps = null;
}
}
}
TestOracleCrud类来进行crud操作
package com.zp.test;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class TestOracleCrud { //此程序演示对oracle的curd操作 public static void main(String[] args) { //调用查询方法 sel(); //调用查询方法(有参数) sel1(); //调用增加方法 //add(); //调用删除方法 //delete(); //调用更新方法 //update(); } //无参数的查询方式 public static void sel() { String sql = "select * from emp"; ResultSet rs = DBUtil.executeQuery(sql, null); try { while(rs.next()) { System.out.println(rs.getString("ename")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { DBUtil.close(rs, DBUtil.getPs(), DBUtil.getCt()); } } //有参数的查询方式 public static void sel1() { String sql = "select * from emp where empno=?"; String[] parameter = {"7369"}; ResultSet rs = DBUtil.executeQuery(sql, parameter); try { while(rs.next()) { System.out.println(rs.getString("ename")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { DBUtil.close(rs, DBUtil.getPs(), DBUtil.getCt()); } } public static void add() { String sql = "insert into emp(empno,ename)values(112,'zengpan')"; DBUtil.executeUpdate(sql, null); } public static void delete() { String sql = "delete from emp where empno=112"; DBUtil.executeUpdate(sql,null); } public static void update() { String sql = "update emp set ename='zhaoming' where empno=112"; DBUtil.executeUpdate(sql,null); } }
根据视频敲的,希望对初步了解oracle连接数据库的朋友有帮助,不足之处在所难免,见谅