自定义标签的生命周期图
实体类
package com.luo.mvc.entity;
import java.io.Serializable;
import com.luo.mvc.util.PinYinUtil;
public class Job implements Serializable{
private String id;
private String job;
private String company;
private String address;
private String salary;
private String url;
private String limit;
private String time;
private String desc;
private String jobHandle;
private String addressHandle;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getSalary() {
return salary;
}
public void setSalary(String salary) {
this.salary = salary;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getLimit() {
return limit;
}
public void setLimit(String limit) {
this.limit = limit;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getJobHandle() {
return jobHandle;
}
public void setJobHandle(String jobHandle) {
this.jobHandle = jobHandle;
}
public String getAddressHandle() {
return addressHandle;
}
public void setAddressHandle(String addressHandle) {
this.addressHandle = addressHandle;
}
public Job(String id, String job, String company, String address, String salary, String url, String limit, String time,
String desc, String jobHandle, String addressHandle) {
this.id = id;
this.job = job;
this.company = company;
this.address = address;
this.salary = salary;
this.url = url;
this.limit = limit;
this.time = time;
this.desc = desc;
this.jobHandle = jobHandle;
this.addressHandle = addressHandle;
}
public Job() {}
}
实现类
package com.luo.mvc.action;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.luo.mvc.dao.JobDao;
import com.luo.mvc.entity.Job;
import com.luo.mvc.util.PageBean;
import com.zking.mvc.framework.DispatcherAction;
import com.zking.mvc.framework.ModelDriver;
public class JobAction extends DispatcherAction implements ModelDriver<Job> {
private JobDao jd = new JobDao();
private Job job = new Job();
@Override
public Job getModel() {
return job;
}
public String find(HttpServletRequest req, HttpServletResponse resp) {
PageBean pageBean = new PageBean();
pageBean.setRequest(req);
req.setAttribute("pageBean", pageBean);
List<Job> jobList = jd.find(job, pageBean);
req.setAttribute("jobList", jobList);
String frowardName = "list";
return frowardName;
}
}
package com.luo.mvc.dao;
/**
*
* luo
*
* 用来做通用分页
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FilterInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.annotation.WebServlet;
import com.luo.mvc.entity.Job;
import com.luo.mvc.util.DBAccess;
import com.luo.mvc.util.PageBean;
public class BaseDao<k> {
// 匿名内部类
// public interface Callback<k> {
// public List<k> foreach(ResultSet rs) throws SQLException;
// }
public List<k> executeQuery(String sql, PageBean pageBean, Callback<k> callBack) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
if (null != pageBean && pageBean.isPagination()) {
try {
con = DBAccess.getConnection();
String countSql = this.getCountSql(sql);
ps = con.prepareStatement(countSql);
rs = ps.executeQuery();
if (rs.next()) {
int total = rs.getInt(1);// 总记录数
pageBean.setTotal(total);// 给pagebean的总记录数赋值
}
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
DBAccess.close(null, ps, rs);
}
}
// 2.查询指定页码并满足条件的总记录数
try {
if(con==null) {
con=DBAccess.getConnection();
}
String pageSql =sql;
if(null!=pageBean&&pageBean.isPagination()) {
pageSql = this.getPageSql(sql, pageBean);
}
ps = con.prepareStatement(pageSql);
rs = ps.executeQuery();
// 不同内容
return callBack.foreach(rs);
} catch (Exception e) {
throw new RuntimeException();
} finally {
DBAccess.close(con, ps, rs);
}
}
/**
* 专门写一个方法用来拼接查询语句的统计满足条件的总行数
*
* @param sql
* @return
*/
public String getCountSql(String sql) {
return "select count(*) from (" + sql + ") t1";
}
/**
* 专门写一个方法用来存储拼接分页的sql
*
* @param sql
* @param pageBean
* @return
*/
public String getPageSql(String sql, PageBean pageBean) {
return sql + " limit " + pageBean.getStartsIndex() + "," + pageBean.getRows();
}
}