在Oracle数据库中一些建表,插入或删除数据我们都会很快的操作,那么在Java中如何操作呢?
一、介绍
先加载驱动、连接数据库Connection之后,再创建一个sql语句的编译器:Statement stat = conn.createStatement();
Java中Oracle语句的处理结果集有三个分别是:execute()、executeUpdate()、executeQuery();(作用是:将sql语句执行)
(1)execute()---返回值为boolean类型。中一般放入的是DDL语言。比如说Create table ...(execute:有执行的意思)
DDL:建表create,删表drop,更新数据内容truncate,更改表结构alter。
(2)executeUpdate()---更新几行int类型。放入的是DML语言。比如说insert into...(update:更新)
DML:insert,delete,update
(3)executeQuery()---返回值为结果集ResultSet放入的是DQL语言。比如说select...
二、具体例子如下
public class TestEmp {
public static void main(String[] args) throws Exception {
//1:加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2:获取连接对象
Connection conn = null;
try {
conn = DBUtil2.getConnection();
//3:创建sql语句编译器
Statement stat = conn.createStatement();
//4:处理结果集
/*
* stat.execute("DDL")
* stat.executeQuery("DQL")
* stat.executeUpdate("DML");
*/
//DDL
String sql = "create table ding( age number(4))";
boolean b = stat.execute(sql);
System.out.println(b);
System.out.println("创建成功"+b);
//DML
String sql1 = "insert into ding values(11)" ;
int a =stat.executeUpdate(sql1);//a位有几行数据
//DQL
String sql2 = "select * from ding";
ResultSet rs = stat.executeQuery(sql2);
while(rs.next()){
//存在内容结果时为true
//从当前行中取数据
/*
* rs.getType(int index)
* index:从1开始,表示第index个字段名
*
* rs.getType(String colName)
* 指定字段名称
*
* 返回值是字段对应的值。
*/
int empno = rs.getInt(1);
String ename = rs.getString("ename");//getString是随ename的类型变得
String job = rs.getString("job");
int mgr = rs.getInt("mgr");
Date hiredate = rs.getDate("hiredate");
double sal = rs.getDouble("sal");
double comm = rs.getDouble("comm");
int deptno = rs.getInt(8);
System.out.println(empno+","+ename+","+deptno);
}
} catch (Exception e) {
e.printStackTrace();
}
conn.close();
}
}