package my.test.jdbc;
import java.sql.ResultSetMetaData;
import my.test.TestBase;
public class JdbcPreparedStatementTest extends TestBase {
public static void main(String[] args) throws Exception {
new JdbcPreparedStatementTest().start();
}
@Override
public void init() throws Exception {
//prop.setProperty("TRACE_LEVEL_SYSTEM_OUT", "20");
}
//测试org.h2.result.LocalResult
//org.h2.result.ResultRemote
@Override
public void startInternal() throws Exception {
// stmt.executeUpdate("drop table IF EXISTS JdbcPreparedStatementTest CASCADE");
// stmt.executeUpdate("create table IF NOT EXISTS JdbcPreparedStatementTest(id int, name varchar(500), b boolean)");
// stmt.executeUpdate("CREATE INDEX IF NOT EXISTS JdbcPreparedStatementTestIndex ON JdbcPreparedStatementTest(name)");
//
// stmt.executeUpdate("insert into JdbcPreparedStatementTest(id, name, b) values(10, 'a1', true)");
// stmt.executeUpdate("insert into JdbcPreparedStatementTest(id, name, b) values(20, 'b1', true)");
// stmt.executeUpdate("insert into JdbcPreparedStatementTest(id, name, b) values(30, 'a2', false)");
// stmt.executeUpdate("insert into JdbcPreparedStatementTest(id, name, b) values(40, 'b2', true)");
// stmt.executeUpdate("insert into JdbcPreparedStatementTest(id, name, b) values(50, 'a3', false)");
// stmt.executeUpdate("insert into JdbcPreparedStatementTest(id, name, b) values(60, 'b3', true)");
// stmt.executeUpdate("insert into JdbcPreparedStatementTest(id, name, b) values(70, 'b3', true)");
stmt.executeUpdate("drop table IF EXISTS JdbcPreparedStatementTest CASCADE");
stmt.executeUpdate("create table IF NOT EXISTS JdbcPreparedStatementTest(rowkey varchar(500), age int, name varchar(500))");
stmt.executeUpdate("CREATE INDEX IF NOT EXISTS JdbcPreparedStatementTestIndex ON JdbcPreparedStatementTest(name)");
// sql = "select * from JdbcPreparedStatementTest where id>? and b=?";
// //sql = "update JdbcPreparedStatementTest set b=true where id>? and b=?";
// ps = conn.prepareStatement(sql);
// ps.setFetchSize(2);
// ps.setInt(1, 50);
// ps.setBoolean(2, true);
//
// rs = ps.executeQuery();
sql = "insert into JdbcPreparedStatementTest values(?, ?, ?)";
// ps = conn.prepareStatement(sql);
// ps.setString(1, "20000");
// ps.setInt(2, 30);
// ps.setString(3, "zhh-2009");
// ps.addBatch();
//
// ps.setString(1, "20001");
// ps.setInt(2, 30);
// ps.setString(3, "zhh-2009");
// ps.addBatch();
//
// ps.setString(1, "20002");
// ps.setInt(2, 30);
// ps.setString(3, "zhh-2009");
// ps.addBatch();
//
// ps.setString(1, "20003");
// ps.setInt(2, 30);
// ps.setString(3, "zhh-2009");
// ps.addBatch();
sql = "insert into JdbcPreparedStatementTest(rowkey, age) values(?, ?)";
ps = conn.prepareStatement(sql);
ps.setString(1, "20000");
ps.setInt(2, 30);
ps.addBatch();
ps.setString(1, "20001");
ps.setInt(2, 30);
ps.addBatch();
//ps.executeUpdate();
ps.executeBatch();
sql = "select * from JdbcPreparedStatementTest";
executeQuery();
//等价于ResultSet.getMetaData(),只不过PreparedStatement.getMetaData()不需要事先执行查询
ResultSetMetaData rsmd = ps.getMetaData(); //如果不是查询sql,此方法会返回null
int n = rsmd.getColumnCount();
while (rs.next()) {
for (int i = 1; i <= n; i++) {
System.out.print(rs.getString(i) + " ");
}
System.out.println();
}
}
}