论坛首页 Java企业应用论坛

ibatis 分页

浏览 3516 次
锁定老帖子 主题:ibatis 分页
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-03-28   最后修改:2014-04-01
package 包名;

import java.util.Date;

public class Employee
{
	private String id;
	private String loginname;
	private String name; 
	private String age;
	private Date birthday;
	private String dept_id;
	private String position;
	private String  gender;
	private String  married;
	private String salary;
	private String educational;
	private String country;
	private String city;
	private String remarks;
	private String school;
	private Date createtime;
	private String email;
	
	
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getCountry() {
		return country;
	}
	public void setCountry(String country) {
		this.country = country;
	}
	public Date getCreatetime() {
		return createtime;
	}
	public void setCreatetime(Date createtime) {
		this.createtime = createtime;
	}
	public String getDept_id() {
		return dept_id;
	}
	public void setDept_id(String dept_id) {
		this.dept_id = dept_id;
	}
	public String getEducational() {
		return educational;
	}
	public void setEducational(String educational) {
		this.educational = educational;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getLoginname() {
		return loginname;
	}
	public void setLoginname(String loginname) {
		this.loginname = loginname;
	}
	
	
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getMarried() {
		return married;
	}
	public void setMarried(String married) {
		this.married = married;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPosition() {
		return position;
	}
	public void setPosition(String position) {
		this.position = position;
	}
	public String getRemarks() {
		return remarks;
	}
	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}
	public String getSalary() {
		return salary;
	}
	public void setSalary(String salary) {
		this.salary = salary;
	}
	public String getSchool() {
		return school;
	}
	public void setSchool(String school) {
		this.school = school;
	}
}

   

package 包名;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class PageModel<T>
{
	 //结果集  
    private T model;
      
    //查询记录数  
    private int totalRecords;  
      
    //每页多少条数据  
    private int pageSize=10;  
      
    //第几页  
    private int pageNo;  
    
    private int startIndex;
    private int endIndex;

	public int getEndIndex() {
		return endIndex;
	}

	public void setEndIndex(int endIndex) {
		this.endIndex = endIndex;
	}

	public int getStartIndex() {
		return startIndex;
	}

	public void setStartIndex(int startIndex) {
		this.startIndex = startIndex;
	}

	/** 
     * 总页数 
     * @return 
     */  
    public int getTotalPages() {  
        return (totalRecords + pageSize - 1) / pageSize;  
    }  
      
    /** 
     * 取得首页 
     * @return 
     */  
    public int getTopPageNo() {  
        return 1;  
    }  
      
    /** 
     * 上一页 
     * @return 
     */  
    public int getPreviousPageNo() {  
        if (pageNo <= 1) {  
            return 1;  
        }  
        return pageNo - 1;  
    }  
      
    /** 
     * 下一页 
     * @return 
     */  
    public int getNextPageNo() {  
        if (pageNo >= getBottomPageNo()) {  
            return getBottomPageNo();  
        }  
        return pageNo + 1;    
    }  
      
    /** 
     * 取得尾页 
     * @return 
     */  
    public int getBottomPageNo() {  
        return getTotalPages();  
    }  
      
 
  
    public int getTotalRecords() {  
        return totalRecords;  
    }  
  
    public void setTotalRecords(int totalRecords) {  
        this.totalRecords = totalRecords;  
    }  
  
    public int getPageSize() {  
        return pageSize;  
    }  
  
    public void setPageSize(int pageSize) {  
        this.pageSize = pageSize;  
    }  
  
    public int getPageNo() {  
        return pageNo;  
    }  
  
    public void setPageNo(int pageNo) {  
        this.pageNo = pageNo;  
    }

    public T getModel() {
		return model;
   }

   public void setModel(T model) 
   {
		this.model = model;
   }

	 
}

   

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="Employee">
  <resultMap id="Employee.EmployeeResult" class="com.huasoft.common.domain.Employee" >
    <result column="ID" property="id" jdbcType="VARCHAR" />
    <result column="LOGINNAME" property="loginname" jdbcType="VARCHAR" />
    <result column="NAME" property="name" jdbcType="VARCHAR" />
    <result column="AGE" property="age" jdbcType="VARCHAR" />
    <result column="BIRTHDAY" property="birthday" jdbcType="TIMESTAMP" />
    <result column="DEPT_ID" property="dept_id" jdbcType="VARCHAR" />
    <result column="POSITION" property="position" jdbcType="VARCHAR" />
    <result column="GENDER" property="gender" jdbcType="VARCHAR" />
    <result column="MARRIED" property="married" jdbcType="VARCHAR" />
    <result column="SALARY" property="salary" jdbcType="VARCHAR" />
    <result column="EDUCATIONAL" property="educational" jdbcType="VARCHAR" />
    <result column="COUNTRY" property="country" jdbcType="VARCHAR" />
    <result column="CITY" property="city" jdbcType="VARCHAR" />
    <result column="REMARKS" property="remarks" jdbcType="VARCHAR" />
    <result column="SCHOOL" property="school" jdbcType="VARCHAR" />
    <result column="CREATETIME" property="createtime" jdbcType="TIMESTAMP" />
    <result column="EMAIL" property="email" jdbcType="VARCHAR" />
  </resultMap>
	
  	<select id="Employee.selectListByCondition"
		parameterClass="java.util.HashMap"  
		resultMap="Employee.EmployeeResult">
		select * from (select ROWNUM ROW_NUM,t.* from (
		select id, loginname, age, birthday, dept_id, position, gender, 
		married, salary, educational, country, city, remarks, school, createtime, e                mail,name from t_employee where +"条件根据自己项目实际需求") t) WHERE ROW_NUM BETWEEN #page.startIndex# AND #page.endIndex#
	</select>
</sqlMap>

   

package 包名;

import java.io.Serializable;
import java.util.List;



public interface BaseDao<T> {
	

	/**
	 * sql查询列表
	 * 
	 * @param statementId
	 *            sql语句名称后缀
	 * @param parameters
	 *            sql参数
	 * @return 查询结果
	 */
	List<T> queryForList(T model,String statementId, int startIndex,int endIndex);

}

    

package 包名;

import java.io.Serializable;
import java.util.HashMap;

import java.util.List;
import java.util.Map;
import java.util.HashMap;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;




public class BaseDaoImpl<T> extends SqlMapClientDaoSupport  implements BaseDao<T>{
	public <T> T queryForList(T model, String statementId,int startIndex,int endIndex)         {
	    PageModel<T> page=new PageModel<T>();
            page.setModel(model);
            page.setStartIndex(startIndex);
            page.setStartIndex(endIndex);
            Map map=new HashMap();
            map.put("page",page);
            List<T> list=getSqlMapClientTemplate().queryForList("statementId",map);
            return list;
	}	
}

   

package 包名
import java.util.List
public class Test{
    public static void main(String args[]){
         BaseDao<Employee> base=new BaseDaoImpl<>();
         Employee employee=new Employee ();
         //从数据库中取出前10条记录
         List list=base.queryForList(employee,"statementId",1,10);
         //遍历list集合
    }



}

    

####################################
# Database Connectivity Properties
####################################
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@数据库IP地址:1521:SID
username=数据库用户名
password=数据库密码

    

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
  <properties resource="examples/domain/database.properties"/>
  <transactionManager type="JDBC">
    <dataSource type="SIMPLE">
      <property value="${driver}" name="JDBC.Driver"/>
      <property value="${url}" name="JDBC.ConnectionURL"/>
      <property value="${username}" name="JDBC.Username"/>
      <property value="${password}" name="JDBC.Password"/>
    </dataSource>
  </transactionManager>
  
  <sqlMap resource="ibatis映射文件路径"/> 
</sqlMapConfig>

   http://shopsale.sinaapp.com

   发表时间:2014-03-31  
用的ROWNUM,这样等于绑定Oracle数据库了吧。这样跟ibatis分页没关系而是对于使用Oracle ROWNUM 进行分页。可以考虑ibatis分页用JDBC的方式。
0 请登录后投票
   发表时间:2014-03-31  
用Spring的PageImpl代替PageModel。

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics