写此博文,作为自己的备忘,也供其他人参考,有不足之处,请指出。
java读、写、更新、删除oracle表中的数据,代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;//使用 jdbc连接oracle数据库
public class TestOracle {
Connection ct = null;public void connOracle() {
try {// 加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");// 获得连接
ct = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "orcl");} catch (Exception e) {
System.out.println("连接数据出错!");
e.printStackTrace();
}}
public void disconnOracle() {
try {
if (ct != null)
ct.close();
} catch (Exception e) {
System.out.println("关闭数据出错!");
e.printStackTrace();
}}
public void selectOracle() {
ResultSet rs = null;
connOracle();
try {
Statement sm = ct.createStatement();
rs = sm.executeQuery("select * from emp");
while (rs.next()) {
// 用户名
System.out.println("用户名: " + rs.getString(2));
// 默认是从1开始编号的
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
} catch (Exception e2) {
System.out.println("rs关闭出错!");
e2.printStackTrace();
}
}
disconnOracle();
}public void updateOracle() {
connOracle();PreparedStatement ps = null;
try {
// 加入事务
// ct.setAutoCommit(false);
// 3. 创建Preparedstatement
// 插入多列
ps = ct
.prepareStatement("update emp set JOB=?,MGR=?,HIREDATE=?,SAL=?,COMM=?,DEPTNO=? where empno=1");
ps.setString(1, "saleman");
ps.setInt(2, 0001);
// 日期型
java.sql.Date tdate = java.sql.Date.valueOf("2007-09-04");
ps.setDate(3, tdate);ps.setInt(4, 5000);
ps.setInt(5, 1000);
ps.setInt(6, 10);ps.executeUpdate();
// ct.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
ps.close();
} catch (SQLException e) {
System.out.println("更新数据库出错!");
e.printStackTrace();
// 有异常就回滚
try {
ct.rollback();
} catch (SQLException e1) {
System.out.println("异常回滚时出错!");
e1.printStackTrace();
}
}
}disconnOracle();
}
public void insertOracle() {
connOracle();PreparedStatement ps = null;
try {
// ps = ct.prepareStatement("insert into emp
// values(?,?,?,?,?,?,?,?)");
ps = ct
.prepareStatement("insert into emp(empno,ename) values(?,?)");ps.setInt(1, 0001);
ps.setString(2, "google");
// ps.setString(3, "salesman");
// ps.setInt(4, 0001);
// //日期
// PreparedStatement pstmt = conn.prepareStatement("insert into
// table1 (tdate)
// values (to_date(?, 'yyyy-mm-dd hh24:mi:ss')");
//
// String buydate="2007-04-09 10:50:00";
// pstmt.setString(1,buydate );// ps.setInt(6, 1000);
// ps.setInt(7, 100);
// ps.setInt(8, 10);
//
ps.execute();
} catch (Exception e2) {
e2.printStackTrace();
} finally {
try {
if (ps != null)
ps.close();
} catch (Exception e3) {
e3.printStackTrace();
}
}disconnOracle();
}
public void deleteOracle() {
connOracle();Statement stmt = null;
String sql = "delete emp where empno=1";
try {stmt = ct.createStatement();
stmt.executeUpdate(sql);
System.out.println("Delete Data Success!");stmt.close();
} catch (Exception e) {
System.out.println("delete数据时出错!");
System.err.print(e.getMessage());
}disconnOracle();
}
public static void main(String[] args) {
TestOracle tOrcl = new TestOracle();
// tOrcl.selectOracle();
// tOrcl.insertOracle();
// tOrcl.updateOracle();
tOrcl.deleteOracle();}
}