步骤 2 : BaseService 步骤 3 : BaseServiceImpl 步骤 4 : ProductImageServiceImpl 步骤 5 : 可运行项目
增值内容,请先登录
完整的SSH模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSH一整套技术栈, 从无到有涵盖全部133个知识点,571个开发步骤, 充实SSH项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package com.how2java.tmall.service;
import java.util.List;
import com.how2java.tmall.pojo.Product;
import com.how2java.tmall.pojo.ProductImage;
public interface ProductImageService extends BaseService {
public static final String type_single = "type_single";
public static final String type_detail = "type_detail";
public List<ProductImage> list(String key_product, Product product, String key_type, String type) ;
public void setFirstProdutImage(Product product);
}
package com.how2java.tmall.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;
import com.how2java.tmall.pojo.Product;
import com.how2java.tmall.pojo.ProductImage;
import com.how2java.tmall.service.ProductImageService;
@Service
public class ProductImageServiceImpl extends BaseServiceImpl implements ProductImageService {
@Override
public void setFirstProdutImage(Product product) {
if(null!=product.getFirstProductImage())
return;
List<ProductImage> pis= list("product", product, "type", ProductImageService.type_single);
if(!pis.isEmpty())
product.setFirstProductImage(pis.get(0));
}
public List<ProductImage> list(String key_product, Product product, String key_type, String type) {
DetachedCriteria dc = DetachedCriteria.forClass(clazz);
dc.add(Restrictions.eq(key_product, product));
dc.add(Restrictions.eq(key_type, type));
dc.addOrder(Order.desc("id"));
return this.findByCriteria(dc);
}
}
增值内容,请先登录
完整的SSH模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSH一整套技术栈, 从无到有涵盖全部133个知识点,571个开发步骤, 充实SSH项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package com.how2java.tmall.service;
import java.util.List;
import com.how2java.tmall.util.Page;
public interface BaseService {
public Integer save(Object object);
public void update(Object object);
public void delete(Object object);
public Object get(Class clazz,int id);
public Object get(int id);
public List list();
public List listByPage(Page page);
public int total();
public List listByParent(Object parent);
public List list(Page page, Object parent);
public int total(Object parentObject);
public List list(Object ...pairParms);
}
增值内容,请先登录
完整的SSH模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSH一整套技术栈, 从无到有涵盖全部133个知识点,571个开发步骤, 充实SSH项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package com.how2java.tmall.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;
import com.how2java.tmall.service.BaseService;
import com.how2java.tmall.util.Page;
@Service
public class BaseServiceImpl extends ServiceDelegateDAO implements BaseService {
protected Class clazz;
public BaseServiceImpl(){
try{
throw new Exception();
}
catch(Exception e){
StackTraceElement stes[]= e.getStackTrace();
String serviceImpleClassName= stes[1].getClassName();
try {
Class serviceImplClazz= Class.forName(serviceImpleClassName);
String serviceImpleClassSimpleName = serviceImplClazz.getSimpleName();
String pojoSimpleName = serviceImpleClassSimpleName.replaceAll("ServiceImpl", "");
String pojoPackageName = serviceImplClazz.getPackage().getName().replaceAll(".service.impl", ".pojo");
String pojoFullName = pojoPackageName +"."+ pojoSimpleName;
clazz=Class.forName(pojoFullName);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
}
}
@Override
public List list() {
DetachedCriteria dc = DetachedCriteria.forClass(clazz);
dc.addOrder(Order.desc("id"));
return findByCriteria(dc);
}
@Override
public int total() {
String hql = "select count(*) from " + clazz.getName() ;
List<Long> l= find(hql);
if(l.isEmpty())
return 0;
Long result= l.get(0);
return result.intValue();
}
@Override
public List<Object> listByPage(Page page) {
DetachedCriteria dc = DetachedCriteria.forClass(clazz);
dc.addOrder(Order.desc("id"));
return findByCriteria(dc,page.getStart(),page.getCount());
}
@Override
public Integer save(Object object) {
return (Integer) super.save(object);
}
@Override
public Object get(Class clazz, int id) {
return super.get(clazz, id);
}
@Override
public Object get(int id) {
return get(clazz, id);
}
@Override
public List listByParent(Object parent) {
String parentName= parent.getClass().getSimpleName();
String parentNameWithFirstLetterLower = StringUtils.uncapitalize(parentName);
DetachedCriteria dc = DetachedCriteria.forClass(clazz);
dc.add(Restrictions.eq(parentNameWithFirstLetterLower, parent));
dc.addOrder(Order.desc("id"));
return findByCriteria(dc);
}
@Override
public List list(Page page, Object parent) {
String parentName= parent.getClass().getSimpleName();
String parentNameWithFirstLetterLower = StringUtils.uncapitalize(parentName);
DetachedCriteria dc = DetachedCriteria.forClass(clazz);
dc.add(Restrictions.eq(parentNameWithFirstLetterLower, parent));
dc.addOrder(Order.desc("id"));
return findByCriteria(dc,page.getStart(),page.getCount());
}
@Override
public int total(Object parentObject) {
String parentName= parentObject.getClass().getSimpleName();
String parentNameWithFirstLetterLower = StringUtils.uncapitalize(parentName);
String sqlFormat = "select count(*) from %s bean where bean.%s = ?";
String hql = String.format(sqlFormat, clazz.getName(), parentNameWithFirstLetterLower);
List<Long> l= this.find(hql,parentObject);
if(l.isEmpty())
return 0;
Long result= l.get(0);
return result.intValue();
}
@Override
public List list(Object... pairParms) {
HashMap<String,Object> m = new HashMap<>();
for (int i = 0; i < pairParms.length; i=i+2)
m.put(pairParms[i].toString(), pairParms[i+1]);
DetachedCriteria dc = DetachedCriteria.forClass(clazz);
Set<String> ks = m.keySet();
for (String key : ks) {
if(null==m.get(key))
dc.add(Restrictions.isNull(key));
else
dc.add(Restrictions.eq(key, m.get(key)));
}
dc.addOrder(Order.desc("id"));
return this.findByCriteria(dc);
}
}
增值内容,请先登录
完整的SSH模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSH一整套技术栈, 从无到有涵盖全部133个知识点,571个开发步骤, 充实SSH项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
package com.how2java.tmall.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;
import com.how2java.tmall.pojo.Product;
import com.how2java.tmall.pojo.ProductImage;
import com.how2java.tmall.service.ProductImageService;
@Service
public class ProductImageServiceImpl extends BaseServiceImpl implements ProductImageService {
@Override
public void setFirstProdutImage(Product product) {
if(null!=product.getFirstProductImage())
return;
List<ProductImage> pis= list("product", product, "type", ProductImageService.type_single);
if(!pis.isEmpty())
product.setFirstProductImage(pis.get(0));
}
}
增值内容,请先登录
完整的SSH模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSH一整套技术栈, 从无到有涵盖全部133个知识点,571个开发步骤, 充实SSH项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。
问答区域
2019-11-27
Restrictions.isNull(key)
1 个答案
how2j 跳转到问题位置 答案时间:2019-11-27 Restrictions.isNull 方法返回的是 Criteria 对象,而非 boolean 对象,所以提问的基础是不存在的。
请仔细检查一下哦
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2019-10-20
如果输入奇数个参数,存在数组越界的风险
2 个答案
Ivan2019 跳转到问题位置 答案时间:2019-12-17 直接开头加个if(0==pairParms%2)可不可以/抠鼻
how2j 跳转到问题位置 答案时间:2019-10-22 嗯,很好,你这个改动让代码更健壮了,赞
回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
2019-06-26
循环这块不是很懂,为啥i=i+2
2018-05-06
步骤四写错了单词???
2017-12-20
其实可以把所有list一起合并到list(Object... pairParms)中,把所有total()合并到一个total(Object... pairParms)中
提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 1 条以前的提问,请 点击查看
提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
|