Struts2+Ibatis+Spring+级联查询

阅读更多

最近闲来没事,做了个struts2+ibatis+spring入门例子 数据库用的是oracle 10。表是scott.emp和scott.dept两张表 级联查询(详细了解  ibatis in action)本例子采用的是后者 

 

dao封装

 

 

package com.huasoft.common.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * 类 编 号: 类 名 称:IBaseDao.java 内容摘要:DAO层封装接口,包含常用的CURD和分页操作 完成日期:2014-3-26
 * 编码作者:马彪
 */
public abstract interface  BaseDao {
	/*分页查询*/

	QueryResult pagedQuery(Map searchParams, Integer pageNumber,Integer pageSize, final String statementId);

}

 

 

    

package com.huasoft.common.dao;

import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.apache.poi.util.StringUtil;
import org.springframework.orm.ibatis.SqlMapClientCallback;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;

import com.ibatis.sqlmap.client.SqlMapExecutor;


/**
 * 类 编 号: 
 * 类 名 称:BaseDaoSupport.java 
 * 内容摘要:DAO层封装使用了泛型,包含常用的CURD和分页操作
 * 完成日期:2014-03-26 编码作者:马彪
 */
@SuppressWarnings("unchecked")
public class BaseDaoImpl extends SqlMapClientDaoSupport implements BaseDao {

	
	private static Logger log=Logger.getLogger(BaseDaoImpl.class);
	
	

	/*
	 * 分页查询
	 * */
	public QueryResult pagedQuery(Map searchParams, Integer pageNumber,Integer pageSize, final String statementId)
	{
		//if(pageNumber==null)pageNumber=1;
	
		Integer total=(Integer)getSqlMapClientTemplate().queryForObject(statementId, searchParams);
		Pageable page=buildPageRequest(pageNumber,pageSize);
		searchParams.put("offset",(pageNumber-1)*pageSize);
		searchParams.put("limit",page.getOffset());
		List list=getSqlMapClientTemplate().queryForList(statementId, searchParams);
		Page pagination=new PageImpl(list,page,total);
		QueryResult queryResult=new QueryResult();
		queryResult.setContent(pagination.getContent());
		queryResult.setTotal(total);
		queryResult.setTotalpages(pagination.getTotalPages());
		
		return queryResult;
	}
	
	
	 
	private PageRequest buildPageRequest(Integer pageNumber, Integer pageSize)
	{
		return new PageRequest(pageNumber, pageSize);
	}
	

	
	
	
	
	
	
}

    

 

 

   分页查询辅助类

 

   

package com.huasoft.common.dao;

import java.util.List;

public class QueryResult
{
	private List content;
	private Integer total;

	private Integer totalpages;

	
	public List getContent()
	{
		return content;
	}
	public void setContent(List content) {
		this.content = content;
	}
	public Integer getTotal() {
		return total;
	}
	public void setTotal(Integer total) {
		this.total = total;
	}
	
	public Integer getTotalpages() {
		return totalpages;
	}
	public void setTotalpages(Integer totalpages) {
		this.totalpages = totalpages;
	}
}

    

 

    

    javabean

 

   

package com.huasoft.common.domain;


import java.util.List;
import com.huasoft.common.domain.Emp
public class Dept 
{
	private String deptno;
	private String dname;
	private String loc;
	private List<Emp> emp;
	
        /*setter 和getter 省略*/

	
}

   

 

   

package com.huasoft.common.domain;

import java.math.BigDecimal;
import java.util.Date;

public class Emp
{
    private Integer empno;
    private String ename;
    private String job;
    private Integer mgr;
   
    private Date hiredate;
    private BigDecimal sal;
    private BigDecimal comm;
    private Integer deptno;
   
   
	
	
}

 

    javabean映射文件

 

 

   



  
  
  
  
  
 
  
    
    
    
    
    
    
    
    
 
  
  
  
  
    
    
    
    
  
  
  
  
	
	
	

 

    sqlmap-config.xml

 

 

    




    
      
      
      

 

 

 

   struts2和spring的配置文件,在网上都可以搜的到,这里不再写了。

 

 

 

你可能感兴趣的:(ibatis,struts,spring,dao,oracle)