阅读(3053) (0)

OceanBase Connector/J 更改数据库

2021-06-30 14:20:00 更新

OceanBase Connector/J 支持 DML 操作和 DDL 操作来更改数据库。

DML 操作

要执行数据操作语言(DML)的 INSERT 或 UPDATE 操作,可以创建一个 Statement 对象或 PreparedStatement 对象。可以使用 PreparedStatement 对象运行带有输入参数集的语句。Connection 对象的 prepareStatement 方法可以定义一条语句并采用变量绑定参数,返回带有语句定义的 PreparedStatement 对象。

PreparedStatement 对象使用 setXXX 方法将数据绑定到准备发送到数据库的语句。

示例:使用 PreparedStatement 执行 INSERT 操作将两行数据添加到 customers 表中。

PreparedStatement ps = null;
try{
    ps = conn.prepareStatement ("insert into customers (customerID, name) values (?, ?)");

    ps.setInt (1, 150);              // 第一个? 对应 customerID
    ps.setString (2, "Adam");   // 第二个? 对应 name

    ps.execute ();

    ps.setInt (1, 207);           
    ps.setString (2, "Alice");   
    ps.execute ();
}

finally{
     if(ps!=null)
     ps.close();
}

DDL 操作

要执行数据定义语言(DDL)操作,可以创建一个 Statement 对象或 PreparedStatement 对象。

示例:使用 Statement 对象在数据库中创建表。

//创建表 customers 以及 customerID 和 name 列
String query;
Statement st=null;

try{
    query="create table customers " +
          "(customerID int, " +
          "name varchar(50))";
    st = conn.createStatement();
    st.executeUpdate(query);
    }
finally{
     //关闭 Statement
     st.close();
    }

如果涉及重新执行 DDL 操作,那么在重新执行该语句之前,必须重新进行准备。

示例:在重新执行之前准备 DDL 语句。

PreparedStatement ps = null;
PreparedStatement ts = null;
try{
    ps = conn.prepareStatement ("insert into customers(customerID, name) values (?, ?)");
 
    // 添加新顾客 Adam,编号150
    ps.setInt (1, 150);          // 第一个? 对应 customerID
    ps.setString (2, "Adam");   // 第二个? 对应 name
    // 插入数据
    ps.execute ();
    
    ts = conn.prepareStatement("truncate table customers"); 
    ts.executeUpdate();
 
 
    // 添加新顾客 Alice,编号 207
    ps.setInt (1, 207);           // 第一个? 对应 customerID
    ps.setString (2, "Alice");   // 第二个? 对应 name
    // 插入数据
    ps.execute ();
 
    ts.close();
    ts = conn.prepareStatement("truncate table customers"); 
    ts.executeUpdate();
    }
finally{
     if(ps!=null)
     // 关闭 Statement
     ps.close();
}