分页

iBatis SqlMap的配备总结

孤街浪徒 提交于 2019-12-04 06:58:19
iBatis SqlMap的配置总结 核心提示:SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: sqlMap namespace=Account,在此空间外要引用此空间的元素,则需要加上命名空间名。 2、实体的别名: typeAlias alias=Account type=com.lavasoft.ibatissut.sim SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: <sqlMap namespace="Account">,在此空间外要引用此空间的元素,则需要加上命名空间名。 2、实体的别名: <typeAlias alias="Account" type="com.lavasoft.ibatissut.simple.domain.entity.Account"/> 如果有用到的全名的地方,可以用别名代替,受命名空间约束。 3、插入操作 对于自增主键的表,插入可以不配置插入的主键列。否则是必须的。 4、获取主键 插入语句之前配置:主要是针对Sequence主键而言,插入前必须指定一个主键值给要插入的记录。Oracle、DB2亦如此,方法是在插入语句标签<insert....>之前配置上: <insert id="insertAccount"

ibatis sqlMap 使用

爷,独闯天下 提交于 2019-12-04 06:58:05
SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。 1、命名空间: <sqlMap namespace="Account"> 在此空间外要引用此空间的元素,则需要加上命名空间名。 2、实体的别名: <typeAlias alias="Account" type="com.lavasoft.ibatissut.simple.domain.entity.Account"/> 如果有用到的全名的地方,可以用别名代替,受命名空间约束。 3、插入操作 对于自增主键的表,插入可以不配置插入的主键列。否则是必须的。 4、获取主键 插入语句之前配置:主要是针对Sequence主键而言,插入前必须指定一个主键值给要插入的记录。Oracle、DB2亦如此,方法是在插入语句标签<insert....>之前配置上: <insert id="insertAccount" parameterClass="Account"> <selectKey resultClass="long" keyProperty="sctId"> SELECT SEQ_TEST.NEXTVAL FROM DUAL </selectKey> insert into .... ........ </insert> 插入语句之后配置:主要是针对自增主键的表而言,这类表在插入时不需要主键

mysql大数据如何优雅地分页

孤街醉人 提交于 2019-12-04 06:40:18
mysql大数据分页 针对mysql 在大数据条件下如何提高分页性能呢 问题当迁移量很大时,查询花费时间太多 解决:利用条件查询特性优雅地弥补 limit 性能: 看图 1.从 0-5,时间 0.0001 秒 2.从 11000 - 11004 行,时间 0.0677 秒 3.获取上一分页的id 优化后 从 11000 - 11004 行,时间 0.0003 秒 哈哈,性能提高200多倍,对大多数分页一下子就乐观起来了!!! 来源: oschina 链接: https://my.oschina.net/u/192561/blog/707584

mysql limit 用法-分页

时光怂恿深爱的人放手 提交于 2019-12-04 06:40:02
在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心, mysql 已经为我们提供了这样一个功能。 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。 mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last. //如果只给定一个参数,它表示返回最大的记录行数目: mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行 //换句话说,LIMIT n 等价于 LIMIT 0,n。 来源: oschina 链接: https://my

el-pagination分页优化

£可爱£侵袭症+ 提交于 2019-12-04 06:20:06
表格分页优化: <template> <el-pagination small background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="pageTotal" /> </template> <script> export default { props: { resetPageSize: {// 重置页面 type: Boolean, default: false }, dataTotal: {// 总条数 type: [String, Number], default: 0 }, tableBegin: {// 总数据 type: Array, default () { return [] } }, pageSizes: {// 分页条数:自定义[10,20,30] type: Array, default () { return [15, 25, 50, 100] } } }, data () { return {

ORACLE 中ROWNUM用法总结以及利用ROWNUM分页

筅森魡賤 提交于 2019-12-04 04:35:00
对于 Oracle 的 rownum 问题,很多资料都说不支持>,>=,=,between...and,只能用以上符号(<、<=、!=),并非说用>,>=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来,其实您只要理解好了这个 rownum 伪列的意义就不应该感到惊奇,同样是伪列,rownum 与 rowid 可有些不一样,下面以例子说明 假设某个表 t1(c1) 有 20 条记录 如果用 select rownum,c1 from t1 where rownum < 10, 只要是用小于号,查出来的结果很容易地与一般理解在概念上能达成一致,应该不会有任何疑问的。 可如果用 select rownum,c1 from t1 where rownum > 10 (如果写下这样的查询语句,这时候在您的头脑中应该是想得到表中后面10条记录),你就会发现,显示出来的结果要让您失望了,也许您还会怀疑是不谁删了一 些记录,然后查看记录数,仍然是 20 条啊?那问题是出在哪呢? 先好好理解 rownum 的意义吧。因为ROWNUM是对结果集加的一个伪列,即先查到结果集之后再加上去的一个列 (强调:先要有结果集)。简单的说 rownum 是对符合条件结果的序列号。它总是从1开始排起的。所以你选出的结果不可能没有1,而有其他大于1的值

学习Spring-Data-Jpa(六)---05、spring-data-commons中的repository

大城市里の小女人 提交于 2019-12-04 04:32:37
1、spring-data-commons项目   spring-data-commons项目是所有spring-data项目的核心,我们来看一下该项目下的repository包中的接口和注解。      2、Repository接口和@RepositoryDefinition注解   当中最重要的就是Repository接口了。它是做数据库操作的最底层的抽象接口、最顶级的父类,打开Repository接口看其源码,发现里面其实什么方法都没有,仅仅起到一个标识作用。捕获要管理的域类型和域类的id类型。用途是保存类型信息,并能够在类路径扫描期间发现继承该接口的接口,帮助我们创建代理类。 @Indexed public interface Repository<T, ID> { }   @Indexed 我们发现在Repository接口上有一个@Indexed 注解,是Spring5提供的注解,用于提升应用启动性能。这个注解单独存在不起作用,要想使其生效的话,要添加spring-context-indexer依赖。在编译时会将@CompoentScan扫描指定package中要生成的bean写在METE-INF/spring.components文件中,当项目启动时,就会读取这个文件,不会再扫描指定的package了,从而提升性能。   我们只要继承Repository接口

操作系统实现(二):分页和物理内存管理(转载)

北城以北 提交于 2019-12-04 03:44:39
原文链接: http://www.cppblog.com/airtrack/archive/2015/04/27/210451.html 上一篇 从 Bootloader 开始到内核载入使用的都是平坦内存,即所有地址对应实际的物理地址。现代操作系统都使用分页来管理内存,分页可以让每个进程都有完整的虚拟地址空间,进程间的虚拟地址空间相互隔离以提供页层级的保护。另外分页可以让物理内存少于虚拟地址空间,同时可以使用磁盘存储暂时未使用的内存页,提供更多的「内存」。 分页 分页通过 CPU 的 MMU(Memory Management Unit) 完成,MMU 通过当前的分页表完成虚拟地址到物理地址的转换。在 x86 下 MMU 通过两级分页表(也可以开启三级)完成地址转换,这两级分别是页目录(Page Directory)和页表(Page Table)。在 x86 下,由 cr3 寄存器存储页目录的地址(物理地址),页目录和页表都包含 1024 项,每项 4 字节,因此页目录和页表大小为 4KB ,按照 4KB 一页的话,刚好占用一页。 MMU 将虚拟地址转换成物理地址的方式是,取虚拟地址的 22~31bits 表示页目录的下标,获得页目录项定位到页表,再取 12~21bits 表示页表的下标,获得页表项定位到页,最后取 0~11bits 表示页偏移。页目录项和页表项的下标分别用

springdata jpa 关于分页@Query问题

会有一股神秘感。 提交于 2019-12-03 23:53:52
关于springdata jpa 分页问题相信很多小伙伴都遇到过,只要表中数量到达分页条件就会报错 废话少说直接上代码: @Query(nativeQuery = true, value = "select id, company_id,address_name,address_detail,phone_num, regist_date,update_date,delete_flag,update_id FROM delivery_address WHERE delete_flag='0' AND IF ( ?1!=1, company_id = ?1, 1=1) AND IF ( ?2 is null,1=1,address_name LIKE CONCAT('%',?2,'%'))", countQuery = "select count(id) FROM delivery_address WHERE delete_flag='0' AND IF ( ?1!=1, company_id = ?1, 1=1) AND IF ( ?2 is null,1=1,address_name LIKE CONCAT('%',?2,'%'))") public Page<DeliveryAddress> findAllByCompanyId(Integer companyId,String

LigerUI Grid(表格)分页要注意的地方

試著忘記壹切 提交于 2019-12-03 23:34:28
给你的grid控件添加个属性: usePager: true//开启分页 不然grid底部的上一页下一页类似这样的按钮都没有 当usePager设置为true时,单击分页条上的按钮后所提交的请求中会默认多添加2个参数:page和pagesize,这俩参数不用手动自己添加,作为使用者,我们只要在服务器端接受这俩参数就可以了。 参数page:想得到第几页; 参数pagesize:每页显示多少条记录; 也就是说在页面设置usePager:true 后,下面的工作就在服务器端进行了。 服务端拿到page和pagesize参数后,通过参数查询得到返回的结果后,还要 手动查询总记录数 ; 因为我用AJAX的方式来实现填充Grid,并且这个grid接受的是JSON数据, 这个json数据还有格式要求: 请参考我的服务端代码(只供参考): @RequestMapping("/chance/list") public @ResponseBody String proccessList(Model model,String page,String pagesize) { log.info("分页信息:"+page+","+pagesize); if(null==page){page="1";} if(null==pagesize){pagesize="5";} List<Chance> list =