QQ:1138789752
Email.java类:
package com.lmc.ink.entity.seo;
import com.lmc.ink.entity.IEntity;
/**
* 推广邮箱表(s_email)实体类
* @author lmc
* */
public class Email extends IEntity {
/**
* 唯一标识
* */
public static final long serialVersionUID = 537132705L;
/**
* 主键
* 长度20位
* 不为空
* 备注:自增长
* */
private Long id;
/**
* 邮箱账户
* 长度40位
* 不为空
* 备注:唯一约束
* */
private String accout;
/**
* 推广状态
* 长度1位
* 不为空
* 备注:有效|无效|已用(1|2|3),默认为1
* */
private Integer state;
/**
* 构造方法
* */
public Email() {
super("s_email");
}
/**
* 获取主键
* 长度20位
* 不为空
* 备注:自增长
* @return Long 主键
* */
public Long getId() {
return id;
}
/**
* 设置主键
* 长度20位
* 不为空
* 备注:自增长
* @param id 主键
* @return String id
* */
public String setId(Long id) {
if(id!=null){
this.id = id;
}
return "id";
}
/**
* 获取邮箱账户
* 长度40位
* 不为空
* 备注:唯一约束
* @return String 邮箱账户
* */
public String getAccout() {
return accout;
}
/**
* 设置邮箱账户
* 长度40位
* 不为空
* 备注:唯一约束
* @param accout 邮箱账户
* @return String accout
* */
public String setAccout(String accout) {
if(!super.xCheck(accout)){
this.accout = accout;
}
return "accout";
}
/**
* 获取推广状态
* 长度1位
* 不为空
* 备注:有效|无效|已用(1|2|3),默认为1
* @return Integer 推广状态
* */
public Integer getState() {
return state;
}
/**
* 设置推广状态
* 长度1位
* 不为空
* 备注:有效|无效|已用(1|2|3),默认为1
* @param state 推广状态
* @return String state
* */
public String setState(Integer state) {
if(state!=null){
this.state = state;
}
return "state";
}
}
IService.java接口:
package com.lmc.ink.service;
import java.util.List;
import com.lmc.ink.entity.IEntity;
/**
* 业务逻辑类父接口
* @author lmc
* @version 2015-04-08 16:47:41
* */
public interface IService<T extends IEntity> {
/**
* 调试标志
* */
public static final boolean debug = true;
/**
* 输处调试信息
* @param en 实体对象
* @param error 错误信息
* */
public void debug(T en, String error);
/**
* 保存记录
* @param en 实体对象
* @return boolean 操作结果
* */
public boolean save(T en);
/**
* 按主键删除记录
* @param en 实体对象
* @return boolean 操作结果
* */
public boolean drop(T en);
/**
* 按例删除记录
* @param en 实体对象
* @return int 操作结果
* */
public int recycle(T en);
/**
* 更新记录(整体)
* @param en 实体对象
* @return boolean 操作结果
* */
public boolean replace(T en);
/**
* 更新记录(局部)
* @param en 实体对象
* @return boolean 操作结果
* */
public boolean modify(T en);
/**
* 按键加载记录
* @param en 实体对象
* @return T 实体对象
* */
public T get(T en);
/**
* 按例查询记录
* @param en 实体对象
* @return List 对象集合
* */
public List<T> list(T en);
/**
* 按例统计记录
* @param en 实体对象
* @return long 统计数
* */
public long sum(T en);
}
EmailService接口:
package com.lmc.ink.service.seo;
import com.lmc.ink.service.IService;
import com.lmc.ink.entity.seo.Email;
/**
* 推广邮箱表(s_email)业务逻辑类接口
* @author lmc
* @version 2015-04-18 10:51:05
* */
public interface EmailService extends IService<Email> {}
EmailService接口实现:
package com.lmc.ink.service.seo.impl;
import java.util.List;
import com.lmc.ink.dao.seo.EmailDao;
import com.lmc.ink.data.Laws;
import com.lmc.ink.entity.seo.Email;
import com.lmc.ink.service.seo.EmailService;
/**
* 推广邮箱表(s_email)业务逻辑类接口
* @author lmc
* @version 2015-04-18 10:51:05
* */
public class EmailServiceImpl implements EmailService {
private EmailDao emailDao;
public void setEmailDao(EmailDao emailDao) {
this.emailDao = emailDao;
}
public void debug(Email en, String error) {
if(en!=null){
en.setXerror(error);
}
if(debug){
System.err.println("【"+this.getClass().getName()+"】"+error);
}
}
public boolean save(Email en) {
try{
if(en==null){
this.debug(null,"参数为空");
return false;
}
if(en.getAccout()==null){
this.debug(en,en.setAccout(null)+"为空");
return false;
}
if(en.getState()!=null){
if(!Laws.legal(Laws.SEO,en.getState())){
this.debug(en,en.setState(null)+"非法");
return false;
}
}else{
en.setState(1);
}
return emailDao.insert(en)>0;
}catch(Exception e){
this.debug(en,e.getMessage());
e.printStackTrace();
}
return false;
}
public boolean drop(Email en) {
try{
if(en==null){
this.debug(null,"参数为空");
return false;
}
if(en.getId()==null){
this.debug(en,en.setId(null)+"为空");
return false;
}
return emailDao.delete(en)>0;
}catch(Exception e){
this.debug(en,e.getMessage());
e.printStackTrace();
}
return false;
}
public int recycle(Email en) {
try{
if(en==null){
this.debug(null,"参数为空");
return 0;
}
return emailDao.remove(en);
}catch(Exception e){
this.debug(en,e.getMessage());
e.printStackTrace();
}
return 0;
}
public boolean replace(Email en) {
try{
if(en==null){
this.debug(null,"参数为空");
return false;
}
if(en.getId()==null){
this.debug(en,en.setId(null)+"为空");
return false;
}
if(en.getState()==null||!Laws.legal(Laws.SEO,en.getState())){
this.debug(en,en.setState(null)+"非法");
return false;
}
return emailDao.merge(en)>0;
}catch(Exception e){
this.debug(en,e.getMessage());
e.printStackTrace();
}
return false;
}
public boolean modify(Email en) {
try{
if(en==null){
this.debug(null,"参数为空");
return false;
}
if(en.getId()==null){
this.debug(en,en.setId(null)+"为空");
return false;
}
if(en.getState()!=null&&!Laws.legal(Laws.SEO,en.getState())){
this.debug(en,en.setState(null)+"非法");
return false;
}
return emailDao.update(en)>0;
}catch(Exception e){
this.debug(en,e.getMessage());
e.printStackTrace();
}
return false;
}
public Email get(Email en) {
try{
if(en==null){
this.debug(null,"参数为空");
return null;
}
if(en.getId()==null){
this.debug(en,en.setId(null)+"为空");
return null;
}
return emailDao.load(en);
}catch(Exception e){
this.debug(en,e.getMessage());
e.printStackTrace();
}
return null;
}
public List<Email> list(Email en) {
try{
if(en==null){
this.debug(null,"参数为空");
return null;
}
return emailDao.find(en);
}catch(Exception e){
this.debug(en,e.getMessage());
e.printStackTrace();
}
return null;
}
public long sum(Email en) {
try{
if(en==null){
this.debug(null,"参数为空");
return 0;
}
return emailDao.count(en);
}catch(Exception e){
this.debug(en,e.getMessage());
e.printStackTrace();
}
return 0;
}
}
测试代码:
package com.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lmc.ink.entity.seo.Email;
import com.lmc.ink.service.seo.EmailService;
public class _Email {
public static void main(String[] args) throws Exception {
ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");
EmailService service = act.getBean("emailService",EmailService.class);
//【按例查询与按例统计举例】
Email en = new Email();
//设置等价查询参数,以AND连接执行:id=1
en.setId(1L);
//设置模糊查询参数,%与_字符匹配,以AND链接执行:accout like '%1138789752@qq.com'
en.setAccout("%1138789752@qq.com");
//设置模糊查询参数,%与_字符匹配,以AND链接执行:accout like '%1138789752_'
en.setAccout("%1138789752_");
//设置范围查询参数,以AND连接执行:id = 1
en.setXscope(true,en.setId(null),"=",1L);
//设置范围查询参数,以AND连接执行:id != 1
en.setXscope(true,en.setId(null),"!=",1L);
//设置范围查询参数,以OR连接执行:accout like '%1138789752@qq.com'
en.setXscope(false,en.setAccout(null),"like","%1138789752@qq.com");
//设置范围查询参数,以OR连接执行:accout like '%1138789752_'
en.setXscope(false,en.setAccout(null),"like","%1138789752_");
//设置范围查询参数,以OR连接执行:id > 2
en.setXscope(false,en.setId(null),">",2L);
//设置范围查询参数,以OR连接执行:id >= 2
en.setXscope(false,en.setId(null),">=",2L);
//设置范围查询参数,以AND连接执行:id < 2
en.setXscope(true,en.setId(null),"<",2L);
//设置范围查询参数,以AND连接执行:id <= 2
en.setXscope(true,en.setId(null),"<=",2L);
//设置非空查询参数,以OR连接执行:accout is null
en.setXsky(false,en.setAccout(null),true);
//设置in查询参数,以AND连接执行:id in (1,2,3);
en.setXchain(true,en.setId(null),new Long[]{1L,2L,3L});
//设置分组字段,执行:group by state,group by id
en.setXgroup(en.setState(null));
en.setXgroup(en.setId(null));
//获取按例查询总记录数
long total = service.sum(en);
//设置分页总记录数
en.setXtotal(total);
//设置分页总记录数
en.setXtotal(10000L);
//设置分页每页条数,此处设置为每页100条
en.setXsize(100L);
//设置分页当前页,此处设置取第2页
en.setXnow(2L);
//执行案例查询,返回值为List<Email>
service.list(en);
//【按键加载记录】
en = new Email();
en.setId(1L);
en = service.get(en);
System.out.println(en==null);
//【添加记录】
//实例化对象并设值
en = new Email();
en.setAccout("1138789752@qq.com");
en.setState(2);
//执行添加记录,返回值为boolean
System.out.println(service.save(en));
//执行添加记录后获取对象保存到数据库的主键值(主键为自增长时)
System.err.println(en.getId());
//【删除记录】
//执行按主键删除,返回值为boolean
en = new Email();
en.setId(1L);
System.out.println(service.drop(en));
//【按例删除记录】
//此处执行delete from s_email where account = '1138789752@qq.com' and state = 2
en = new Email();
en.setAccout("1138789752@qq.com");
en.setState(2);
System.out.println(service.recycle(en));
//此处没有参数,相当于清空数据库表,因此应慎用按例删除记录
System.out.println(service.recycle(new Email()));
//【更新记录】
en = new Email();
en.setId(1L);
en.setAccout("123456");
//(局部更新)此处执行:update s_email set accout = '123456' where id = 1
System.out.println(service.modify(en));
en.setState(1);
//(整体更新)此处执行:update s_email set accout = '123456',state = 1 where id = 1
System.out.println(service.replace(en));
//【输出调试信息】
//此处被Service类内部调用
service.debug(en,"错误信息");
//以上以MyBatis+SpringMVC3.0实现的,借鉴了Hibernate设计思想,
//采用封装、抽象、继承的设计思想,做到了数据与相应的操作的高内聚低耦合的实现
}
}