最近想好好了解一下数据库的原理,下载了h2database的源码,准备好好看看。此过程的一些想法,暂且记下来,权当做读码笔记吧!
为了调试准备的测试用例:
@Test
public void testExternalDb() throws Exception
{
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:./testdb", "sa", "");
// add application code here
Statement stmt = conn.createStatement();
stmt.executeUpdate("DROP TABLE TEST IF EXISTS");
stmt.executeUpdate("CREATE TABLE TEST(ID INT PRIMARY KEY,NAME VARCHAR(255));");
stmt.executeUpdate("INSERT INTO TEST VALUES(100, 'Damn,World');");
stmt.executeUpdate("INSERT INTO TEST VALUES(200, 'Hello,H2');");
stmt.executeUpdate("INSERT INTO TEST VALUES(150, 'Hello,World');");
ResultSet rs = stmt.executeQuery("SELECT * FROM TEST where ID>120 and NAME like 'Hello%'");
while (rs.next())
{
System.out.println(rs.getInt("ID") + "," + rs.ge

本文通过阅读h2database源码,探讨了SQL语句如何在内存数据库中执行,包括DDL编译为DefineCommand,DML转化为Query、Update等对象。重点分析了Select查询的过程,涉及TableFilter、IndexCursor、Condition过滤以及结果集的处理,最后讲解了JdbcResultSet在JDBC交互中的作用。
最低0.47元/天 解锁文章
1151

被折叠的 条评论
为什么被折叠?



