摘要: 我们看看insert语句的执行过程, 如果cs.isTransactionStatement()是true,则表示启动事务执行, public Result executeCompiledStatement(Statement cs, Object[] pvals) { Result r; if (abortTransaction) { rollback(false); return Result.newErrorResult(Error.error(ErrorCode.X_40001)); ... 阅读全文
posted @ 2013-01-17 21:38 zhwj184 阅读(474) 评论(0) 推荐(0) 编辑
摘要: hsqldb是java版的简化数据库,代码量比较少,对于学习数据库的设计是一个比较好的选择,对于derby代码量比较大,mysql c++更复杂,所以就通过学习hsqldb来学习数据库的设计。在这里可以下载到源码http://hsqldb.org/,源码包下org.hsqldb.test有很多的测试类,大家可以从这里开始调试学习hsqldb。HyperSQL数据库叫catalog,根据数据库存储方式不同分为几种:• mem: stored entirely in RAM - without any persistence beyond the JVM process's life• f 阅读全文
posted @ 2013-01-17 17:17 zhwj184 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 在server类的handleConnection方法中处理客户端的输入, 首先调用allowConnection方法检测下客户端ip是否合法,ServerAcl类中可以查看,在server启动输入参数中可以指定acl 黑白名单ip文件,检测代码很简单,这里就不说明了,有兴趣的看下ServerAcl类。 protected boolean allowConnection(Socket socket) { if (isShuttingDown) { return false; } return (acl == n... 阅读全文
posted @ 2013-01-17 17:17 zhwj184 阅读(272) 评论(0) 推荐(0) 编辑