Mapper接口中代码(com.dao.ActivityMapper)
@SelectProvider(type=ActivityMapperProvider.class,method="select")
public List<Activity> getActivityAll(Map<String,Object> map);
Provider接口中代码(com.dao.provider.ActivityMapperProvider)
public String select(final Map<String,Object> map){
return new SQL(){
{
SELECT("*");
FROM("t_activity");
StringBuffer sb = new StringBuffer();
if(map.get("ac_type") != null){
sb.append(" and ac_type= '"+map.get("ac_type")+"'");
}
if(!sb.toString().equals("")){
WHERE(sb.toString().replace("and", ""));
}
}
}.toString();
}
数据库ddl
drop table if exists t_activity;
create table if not exists t_activity(
ac_id int(11) not null primary key auto_increment comment '自增id主键',
ac_title varchar(20) comment '活动标题',
ac_content varchar(225) comment '活动内容',
ac_place varchar(40) comment '活动地点',
ac_starttime timestamp default '2017-01-01 00:00:00' on update current_timestamp comment '开始时间',
ac_endtime timestamp default '2017-01-01 00:00:00' on update current_timestamp comment '结束时间',
ac_host varchar(20) comment '主持人',
ac_guest varchar(20) comment '特邀嘉宾',
ac_money decimal(7,2) default 0 comment '活动报名费,0表示免费,活动可以免费也可以付费',
ac_limitnum int(10) comment '人数限制',
ac_fixperson varchar(20) comment '针对人群',
ac_type tinyint(1) default 0 comment '活动类型,0表示读书会活动,1表示讲座活动',
ac_status tinyint(1) default 0 comment '活动状态,0表示未开始,1表示正在进行,2表示已经结束',
ac_applystart timestamp default '2017-01-01 00:00:00' on update current_timestamp comment '报名开始时间',
ac_applyend timestamp default '2017-01-01 00:00:00' on update current_timestamp comment '报名结束时间',
ac_createtime timestamp default '2017-01-01 00:00:00' on update current_timestamp comment '创建时间',
ac_modifytime timestamp default '2017-01-01 00:00:00' on update current_timestamp comment '修改时间'
);