java分页插件valuelist

在这里给大家分享一个java的分页插件,valuelist,具体源代码可以查看附件。

首先介绍下该插件有什么功能:

1、不用我们在sql中写具体的分页语句,如mysql,我们不必去写limit ?,?这样的代码,这些代码组件会自动拼装上

2、支持自定义多条件查询,即如果我参数中不传要查询的字段值,在查询时会去掉该查询条件,当然这要在sql语句中进行一个简单的配置。

 

基本功能就是上述两种,个人认为还是比较好用的,尤其是第二点,当我们综合查询时,不确定哪些字段要查询时,是非常方便的。在网上搜valuelist,可能还会有文章介绍它还带有相应的页面标签,我们使用的是不支持标签的,仅用来方便查询。

 

下面介绍使用方法:首先说明下该组件是将sql写到xml文件中的

1、首先这个组件可能依赖的jar包有以下几个,以gradle语法列出:

compile ("commons-beanutils:commons-beanutils:1.9.1")
compile ("org.springframework:spring-jdbc:4.0.0.RELEASE")
compile ("org.springframework:spring-context:4.0.0.RELEASE")
compile ("org.slf4j:slf4j-api:1.7.7") //同时加上你项目中log的实现,如log4j
compile("mysql:mysql-connector-java:5.1.29")
compile("com.alibaba:druid:1.0.15") //也可以换成别的连接池,如c3p0、dbcp等

因为该组件是依赖于spring的,所以需要引入spring相关jar包。

2、将该组件源代码(见附件)复制进入项目中,或者自己打个jar包放入项目中

3、配置数据库连接池,以下仅为参考,自己可配置自己项目使用的连接池


		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	

 4、配置valuelist用到的类,可以新建一个valuelist.xml放入你项目spring扫描的配置文件路径下




               
		




		
                
		
		
                
		
		
                
		
                
			

				
			
		
	

	
		
		
		
		
		
		
			
 
				
			
		
	



		
			
				
				
				
			
		
	

 
 以上即为配置文件,请保证项目启动时,spring能够扫描到以上配置,我们配置的net.mlw.vlh.adapter.jdbc.spring.SpringDaoValueListAdapter类可以想象为一个个的查询方法,不同的sql则定义多个这样的类。

5、最后,我们看代码的使用

如我们使用第一个getShareListByUserIdAndCate查询:

/**
	 * 注入要使用的类,即我们在配置文件中配置的 net.mlw.vlh.DefaultValueListHandlerImpl
	 */
	@Autowired
	private ValueListHandler handler;
	
	public void getShare(int pageIndex,int pageSize){
		//定义map存放查询参数
		Map paras=new HashMap();
		//设置查询页码,须将pageIndex转换为string
		paras.put("pagingPage", String.valueOf(pageIndex));
		//设置每页记录数
		paras.put("pagingNumberPer",String.valueOf(pageSize));
		//设置sql中的查询参数,key即配置文件sql语句中{}中的值,如果sql配置中查询条件没有在/~~/之内,则必须传入;
		paras.put("authorId","123");
		paras.put("cateId","567");
		//执行查询,第一个参数即我们最后配置的valueListHandler中注入的map中对应getShareListByUserIdAndCate这个sql bean配置的key值
		//即  这里对应的key
		ValueList list=handler.getValueList("getUserByUserName", new ValueListInfo(paras));
		//以上ValueList对象里包含很多字段,如记录总数,查询条件,查询结果等
		//查询结果,每条记录以Map形式返回
		List> res=list.getList();
		//记录总数
		int count=list.getValueListInfo().getTotalNumberOfEntries();
	}

 

以上就是该组件的使用方式,在进行很多个条件查询时,确实带来了很大的方便;若是以上有什么叙述的不到位的,或者不明白的,请指出,我进行改正。

 

 

 

你可能感兴趣的:(java)