Statemen接口对象

利用Statement接口实现数据表的更新和查询操作

-取得Statement接口对象:Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException

  一个Connection 可以打开多个Statement

-数据更新操作:int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException

  返回int更新行数

-数据查询操作:ResultSet executeQuery(String sql) throws SQLException

  返回ResultSet

 

编写数据库创建脚本,创建一个表格脚本

DROP TABLE member PURGE ;
DROP SEQUENCE myseq;
CREATE SEQUENCE myseq ;
CREATE TABLE member (
    mid        NUMBER,
    name        VARCHAR2(20),
    birthday    DATE    DEFAULT    (SYSDATE) ,
    age        NUMBER(3),
    note         CLOB,
    CONSTRAINT pk_mid PRIMARY KEY(mid)
);

以上有序列,mid通过序列生产

 

数据更新操作:

每次更新之后都会返回影响的数据行数

数据增加的Oracle命令

  INSERTINTO 表名称 (列,列,、、) VALUSES (值,值。。。) ;

package cn;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class Test {
    
    private static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
    private static final String DBURL = "jdbc:oracle:thin:@localhost:1521:mldn";
    private static final String USER = "scott" ;
    private static final String PASSWORLD = "tiger" ;
    public static void main(String[] args)  throws Exception{
        //第一步 加载数据库驱动程序,此时不需要实例化,会有容器自己负责管理
        Class.forName(DBDRIVER) ;
        //第二步 连接数据库 每一个Connection都代表一个数据库连接
        Connection conn = DriverManager.getConnection(DBURL,USER,PASSWORLD) ;
        //第三步,进行数据库的数据操作
        Statement stmt = conn.createStatement();
        String sql = "INSERT INTO member (mid,name,birthday,age,note) VALUES(myseq.nextval,'张三',TO_DATE('1999-10-10','yyyy-mm-dd'),17,'人')";
        int len = stmt.executeUpdate(sql);
        
        System.out.println(conn) ;
        System.out.println(len);
        
        //关闭连接
        stmt.close();
        conn.close();
    }    

}

这个时候就会更新了数据库中的列表信息

 

 

范例:数据修改

  命令格式 UPDATE 表名称 SET 字段=值,WHERE 更新条件

String sql = "UPDATE member SET name='李四' ,birthday=SYSDATE ,age=30 WHERE mid IN(2,3)";

结果:

 

范例:数据删除

  命令:  DELETEFROM 表名称 WHRER 删除条件() ;

 

 

String sql = "DELETE FROM member WHERE name = '张三'";

数据查询

 

数据查询的结果返回程序,由用户处理

在数据库中虽然有几百张数据表,但是数据表的数据组成的类型是固定的。

next

boolean next()
             throws SQLException

Moves the cursor froward one row from its current position

getInt

int getInt(String columnLabel)
           throws SQLException

等等。。。

    //开发标准,不写 *
        String sql = "SELECT mid,name,age,birthday,note FROM member";
        ResultSet rs = stmt.executeQuery(sql);
        while(rs.next()){
            int mid = rs.getInt("mid") ;
            String name = rs.getString("name") ;
            int age = rs.getInt("age") ;
            Date birthday = rs.getDate("birthday");
            String note = rs.getString("note");
            
            System.out.println(mid + ", " + name +", " + age + ", " + birthday +", " +note);
        }

 

posted @ 2016-02-02 18:06  式微胡不归  阅读(607)  评论(0编辑  收藏  举报