package my.test.index; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Properties; public class IndexTest { /** * @param args */ public static void main(String[] args) throws Exception { Properties prop = new Properties(); prop.setProperty("user", "sa"); prop.setProperty("password", ""); //prop.setProperty("MODE", "DB2"); //支持SYSDUMMY1 int len = 256; StringBuilder s = new StringBuilder(len); for (int i = 1; i <= len; i++) { s.append("a"); } // prop.setProperty("TRACE_LEVEL_FILE", "10"); // prop.setProperty("TRACE_LEVEL_SYSTEM_OUT", "20"); // prop.setProperty("PAGE_SIZE", "1024"); // prop.setProperty("FILE_LOCK", "FS"); prop.setProperty("PAGE_SIZE", "128"); prop.setProperty("MVCC", "true"); String url = "jdbc:h2:tcp://localhost:9092/mydb"; Connection conn = DriverManager.getConnection(url, prop); conn.setAutoCommit(false); Statement stmt = conn.createStatement(); ResultSet rs = null; stmt.executeUpdate("drop table IF EXISTS IndexTestTable"); //stmt.executeUpdate("create TEMPORARY table IF NOT EXISTS IndexTestTable(id int, name varchar(500),CONSTRAINT myindex INDEX (name)) TRANSACTIONAL"); //stmt.executeUpdate("create table IF NOT EXISTS IndexTestTable(id int, name varchar(500) not null)"); //stmt.executeUpdate("create LOCAL TEMPORARY table IF NOT EXISTS IndexTestTable(id int not null, name varchar(500) not null)"); //stmt.executeUpdate("CREATE UNIQUE HASH INDEX idx_name ON IndexTestTable(name)"); //stmt.executeUpdate("CREATE PRIMARY KEY HASH idx_name ON IndexTestTable(id)"); //stmt.executeUpdate("create table IF NOT EXISTS IndexTestTable(id int not null, name varchar(500) not null)"); //stmt.executeUpdate("CREATE primary key idx_name ON IndexTestTable(id)"); // stmt.executeUpdate("insert into IndexTestTable(id, name) values(" + 120 + ", '"+110 +"abcdef1234')"); // stmt.executeUpdate("insert into IndexTestTable(id, name) values(" + 110 + ", '"+110 +"abcdef1234')"); // stmt.executeUpdate("insert into IndexTestTable(id, name) values(" + 130 + ", '"+110 +"abcdef1234')"); //测试TreeIndex //stmt.executeUpdate("create LOCAL TEMPORARY table IF NOT EXISTS IndexTestTable(id int not null, name varchar(500) not null) NOT PERSISTENT"); //stmt.executeUpdate("CREATE index idx_name ON IndexTestTable(id)"); //测试PageBtreeIndex //找断点条件indexName.equalsIgnoreCase("idx_name"); getName().equalsIgnoreCase("idx_name"); //index.getName().equalsIgnoreCase("idx_name"); stmt.executeUpdate("create table IF NOT EXISTS IndexTestTable(id int not null, name varchar(500) not null, address varchar(500) not null)"); stmt.executeUpdate("CREATE index IF NOT EXISTS idx_name ON IndexTestTable(name)"); for (int i = 1; i <= 200; i++) { //stmt.executeUpdate("insert into IndexTestTable(id, name) values(" + i + ", '" + s + "abcdef1234')"); stmt.executeUpdate("insert into IndexTestTable(id, name, address) values(" + i + ", 'abcdef1234', 'zzz')"); } stmt.executeUpdate("delete from IndexTestTable where id=2"); stmt.executeUpdate("delete from IndexTestTable where id>300"); stmt.executeUpdate("insert into IndexTestTable(id, name, address) values(" + 300 + ", '" + 300 + "abcdef1234', 'zzz')"); stmt.executeUpdate("insert into IndexTestTable(id, name, address) values(" + 301 + ", '" + 302 + "abcdef1234', 'zzz')"); stmt.executeUpdate("insert into IndexTestTable(id, name, address) values(" + 2 + ", '" + 2 + "abcdef1234', 'zzz')"); String sql = null; sql = "select name from IndexTestTable where id>198"; rs = stmt.executeQuery(sql); while (rs.next()) { System.out.println(rs.getString(1)); } conn.commit(); rs.close(); stmt.close(); conn.close(); } }