package my.test.index; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Properties; //找断点条件indexName.equalsIgnoreCase("idx_name"); getName().equalsIgnoreCase("idx_name"); //index.getName().equalsIgnoreCase("idx_name"); public class PageBtreeNodeTest { //重点测试find 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 TABLE IF NOT EXISTS IndexTestTable(id int not null, name varchar(500) not null, address varchar(500))"); stmt.executeUpdate("CREATE INDEX IF NOT EXISTS idx_name ON IndexTestTable(name asc)"); //stmt.executeUpdate("CREATE index IF NOT EXISTS idx_name ON IndexTestTable(name desc)"); long ii = 1000000001L; for (int i = 1; i <= 100; i++) { //stmt.executeUpdate("insert into IndexTestTable(id, name) values(" + i + ", '" + s + "abcdef1234')"); //stmt.executeUpdate("insert into IndexTestTable(id, name, address) values(" + i * 10 + ", 'abcdef1234', 'zzz')"); stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(" + i + ", '" + ii + "', 'zzz')"); ii++; } //stmt.executeUpdate("insert into IndexTestTable(id, name) values(" + 101 + ", '" + s + "abcdef1234')"); // stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(10, '1000000001', 'a')"); // stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(20, '1000000002', 'b')"); // stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(30, '1000000003', 'c')"); // stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(40, '1000000004', 'd')"); // //stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(40, '"+s+"', 'd')"); // stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(50, '1000000005', 'e')"); // stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(60, '1000000006', 'f')"); // stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(70, '1000000007', 'g')"); // stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(80, '1000000008', 'h')"); // stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(90, '1000000009', 'i')"); // // //stmt.executeUpdate("insert into IndexTestTable(id, name, address) SORTED values(30, '1000000003', 'c')"); // //stmt.executeUpdate("delete from IndexTestTable where id=40"); // stmt.executeUpdate("delete from IndexTestTable where id=30"); //conn.commit(); // 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')"); // // stmt.executeUpdate("update IndexTestTable set name='1234567890' where id>10"); String sql = null; sql = "select name,id from IndexTestTable where name>='1000000004'"; rs = stmt.executeQuery(sql); while (rs.next()) { System.out.println(rs.getString(1)); } //stmt.executeUpdate("TRUNCATE TABLE IndexTestTable"); //stmt.executeUpdate("drop index IF EXISTS idx_name"); conn.commit(); //conn.rollback(); rs.close(); stmt.close(); conn.close(); } }