- 浏览: 5831 次
最新评论
文章列表
[置顶] mybatis简单的分页插件
- 博客分类:
- mybatis
mybatis的SqlSession可以直接通过以下接口来进行分页查询:
<E> List<E> selectList(String statement, Object parameter, RowBounds rowBounds);
不过该查询是基于对查询结果去子集的方式。该方法效率较低(如果只查询一条数据服务器需要返回所有满足条件的数据)。
实现思路:用mybatis插件拦截StatementHandler的prepare方法,修改Sql语句,添加分页查询语句。至于分页中的总页数查询,另执行一条select count(*)查询语句。实现较简单。
...
mybatis执行Sql的核心类是Executor,其结构如图所示,核心是BaseExecutor,继承自BaseExecutor的有BatchExecutor、ClosedExecutor、ReuseExecutor、与SimpleExecutor四个类,分别对应着执行器的四个类型。
在配置文件中可以定义的执行类型如下图所示。
public enum ExecutorType {
SIMPLE, REUSE, BATCH
}
ExecutorType定义了的三种Executor类型。
同时,继承子Executor的类有CachingExecutor,该执行器实现了m ...
当线程池的有界工作队列排满才需要使用饱和策略,饱和策略要么拒绝新的请求,要么要求请求被延时执行。Java提供了几种拒绝提交任务的方案,可以通过ThreadPoolExecutor类的setRejectedExecutionHandler方法来设置饱和策略。具体参数如下:
<!--[if !supportLists]-->1、
1、CallerRunsPolicy
2、AbortPolicy
3、DiscardPolicy
4、DiscardOldestPolicy
第一种策略为Caller-runs策 ...
今天看了java并发编程实战,了解到java中基本类型的自增操作是非线程安全的,例如:
@NotThreadSafe
public class UnsafeSequence {
private int value;
/** Returns a unique value. */
public int getNext() {
return value++;
}
}
value的自增操作分为三个部分,先读后写两个操作,这两个操作不是原子的,是线程非安全的。
测试类如下:
package com.liuyao.java;
import jav ...
linux按键驱动程序心得
在前一章所讲的按键驱动的时候,用的是循环扫描的方式,在运行的时候通过ps命令查看当前的进程,可以看到这个时候按键驱动程序的cpu占有率是最高的,这是因为,在写应用程序的时候,用的是一个死循环,不管有没有按键按下,都会一直的读取驱动程序传过来的数据,这个死循环是占用cpu最高的,下面这种方法是通过中断的方式来对按键的值进行采样,当有按键按下的时候,驱动程序会唤醒应用程序,应用程序处理所得到的数据,当没有按键按下的时候,驱动程序会一直处于休眠状态,这个时候再用ps命令的时候,查看我们的请用程序,可以看到的是,应用程序的状态时s,是sleep的简称,说明其处于休眠状态 ...
- 2014-10-28 15:56
- 浏览 283
- 评论(0)
浅谈80X86内存寻址问题
一、基础知识
本文主要浅谈80x86系列处理器的内存地址的寻址问题,当然这种问题在我学习单片机的时候是没有遇到过的。当今的操作系统不需要自己来跟踪管理物理地址,而这个工作全部由处理器的内 ...
- 2014-10-28 15:28
- 浏览 226
- 评论(0)
简介:
现代操作系统中,同一时间可能有多个内核执行流在执行,因此内核需要一些同步机制来同步对共享数据的访问。而且在对称多处理器系统(SMP)上,也需要同样的机制。多个执行线程同时访问和操作数据,就有可能出现共享数据被覆盖的情况,这是一种很难察觉的危险的情况。
原子操作可以保证指令以原子的方式执行,执行期间不会被打断。本人的理解是原子操作就是保证变量的读取-写入-回写这个过程原子的完成,不能够被打断,否则就有可能出现数据被覆盖的情况。linux内核提供了两组原子操作接口,分别是整数操作和单独的位操作。大多数体系结构会提供支持原子操作的简单指令。也就是把整个操作放到了一个指令中去执行,不会被中断 ...
- 2014-02-13 12:39
- 浏览 424
- 评论(0)
通过安装samba服务器可以实现在linuxubuntu与windows之间共享文件。对于在windows下从事linux开发的用户来说,这是极大的方便。第一步:安装samba服务器Samba服务在Ubuntu12.04版本中中默认安装,对于其他没有默认安装的版本来说,可以通过一
- 2014-02-13 11:53
- 浏览 290
- 评论(0)
下面是我对uboot如何启动内核的代码进行的分析
需要了解的数据结构:
bd 数据结构:
typedef struct bd_info {
int bi_baudrate;
/* serial console baudrate */
unsigned long bi_ip_addr;
/* IP Address */
struct environment_s *bi_env;
unsigned long bi_arch_number;
/* unique id for this board */
unsigned long bi_boo ...
- 2012-02-12 13:42
- 浏览 271
- 评论(0)
前几次在写驱动程序的时候,在生成 .ko文件后加载后,通过cat /proc/devices可以看到已经生成相应的设备,但是并没有生成相应的设备文件在,linux系统中,驱动程序就像普通的程序一样读写,所以必须要相应的设备文件,前几次是在/dev/目录下直接
mknod led c 253 0这样就生成了相应的设备文件,这篇文件,推荐一个在驱动程序中自动生成设备文件的方法。
首先:需要一个类,通常是指针形式的:struct class *this_class
什么时候生成设备文件呢,当然是在内核加载的那个入口程序里面了,在这里我们使用class_create( ...
- 2012-02-11 12:19
- 浏览 262
- 评论(0)
在内核配置中选择支持EABI,出现的问题可能是如此,记录一下,也有肯能是其他的原因造成的
- 2012-02-11 12:04
- 浏览 617
- 评论(0)