上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 26 下一页
摘要: 在session的public Result executeCompiledStatement(Statement cs, Object[] pvals)方法执行中会处理事务 boolean isTX = cs.isTransactionStatement(); if (!isTX) { if (database.logger.getSqlEventLogLevel() >= SimpleLog.LOG_NORMAL) { sessionContext.setDyn... 阅读全文
posted @ 2013-01-20 15:16 zhwj184 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 执行过程先分析select语句的解析过程: select语句的解析集中在ParserDQL类的XreadQueryExpression方法中,其中XreadQueryExpressionBody select除了limit,offset,fetch关键字外的其他条件解析,XreadOrderByExpression是limit,offset,fetch,ordre by的解析,我们分析简单的select * from user where * order by * limit 2 offset 5 这种语句,对于嵌套子查询和联合查询待会简单过下。 QueryExpression que... 阅读全文
posted @ 2013-01-19 22:38 zhwj184 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 查询过程前面解析类似insert,最终调用是在下面这个QuerySpecification类的getSingleResult方法,RangeVariable是查询条件相关 private Result getSingleResult(Session session, int maxRows) { int[] limits = sortAndSlice.getLimits(session, this, maxRows); Result r = buildResult(session, limits); ... 阅读全文
posted @ 2013-01-18 00:23 zhwj184 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 我们看看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) 编辑
摘要: 1.普通的通过构造函数初始化,没有指定构造函数参数的就是用默认的无参的构造方法<bean id="exampleBean" class="examples.ExampleBean"/> <bean name="anotherExample" class="examples.ExampleBeanTwo"/>构造函数的几种方式:1.普通沟通函数注入方式,按照构造函数参数的顺序和个数来注入beanpackage x.y; public class Foo { public Foo(Bar bar 阅读全文
posted @ 2013-01-08 17:04 zhwj184 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 通常在数据库DAO层的查询中,我们会定义一个DAO接口,而在实现中我们只是拼接查询参数并且指定一个ibatis的sqlmap中的sqlid进行查询,Dao的实现很类似,而且非常简单,其实可以简化这种的实现,不需要这些实现代码,下面我们通过annotation机制来简化这块的实现。比如public class TestDaoImpl extends SqlMapClientDaoSupport implements TestDao { @Override public int updateBrandOfferStatusByBrandMemberId(Long brandMemb... 阅读全文
posted @ 2013-01-06 23:32 zhwj184 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 异步channel API主要引入三个异步类: AsynchronousFileChannel,AsynchronousSocketChannel, and AsynchronousServerSocketChannel.AsynchronousFileChannel跟FileChannel区别:不保存全局的position和offset,可以制定访问位置,也支持并发访问文件不同。AsynchronousServerSocketChannelAsynchronousSocketChannel:能够绑定到一个制定线程池的组中,这个线程池能够用future或者CompletionHandler来对 阅读全文
posted @ 2012-12-31 15:10 zhwj184 阅读(431) 评论(0) 推荐(0) 编辑
摘要: java7NIO2 随机文件访问APIpackage com.mime; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.nio.channels.FileLock; import java.nio.channels.SeekableByteChannel; import java.nio.charset.C. 阅读全文
posted @ 2012-12-30 20:26 zhwj184 阅读(294) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 26 下一页