这样的代码让我情何以堪~!~~~
public PagerModel findAllPropagandize(final int offset,final int pageSize,final Propagandize propagandize) throws DataAccessException { //查询总的条目数 int total = 0; if(propagandize == null){ total = Integer.parseInt(this.hibernateTemplate.find("select count(*) from Propagandize").get(0).toString()); }else if(propagandize.getPropagandizestuff() != null){ total = Integer.parseInt(this.hibernateTemplate.find("select count(*) from Propagandize p where p.propagandizestuff.stuffId="+propagandize.getPropagandizestuff().getStuffId()).get(0).toString()); }else if(propagandize.getPropagandizeSize() != null){ total = Integer.parseInt(this.hibernateTemplate.find("select count(*) from Propagandize p where p.propagandizeSize.propagandizeSizeId="+propagandize.getPropagandizeSize().getPropagandizeSizeId()).get(0).toString()); }else if(propagandize.getPropagandizeNum() != null){ total = Integer.parseInt(this.hibernateTemplate.find("select count(*) from Propagandize p where p.propagandizeNum.propagandizeNumId="+propagandize.getPropagandizeNum().getPropagandizeNumId()).get(0).toString()); }else{ total = Integer.parseInt(this.hibernateTemplate.find("select count(*) from Propagandize").get(0).toString()); } List<Propagandize> propagandizeList = this.getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = null; if(propagandize == null){ System.out.println("one"); query = session.createQuery("from Propagandize order by propagandizeId"); query.setFirstResult(offset); query.setMaxResults(pageSize); }else if(propagandize.getPropagandizestuff() != null){ System.out.println("stuff"); query = session.createQuery("from Propagandize p where p.propagandizestuff.stuffId="+propagandize.getPropagandizestuff().getStuffId()+"order by p.propagandizeId"); query.setFirstResult(offset); query.setMaxResults(pageSize); }else if(propagandize.getPropagandizeSize() != null){ System.out.println("size"); query = session.createQuery("from Propagandize p where p.propagandizeSize.propagandizeSizeId="+propagandize.getPropagandizeSize().getPropagandizeSizeId()+"order by p.propagandizeId"); query.setFirstResult(offset); query.setMaxResults(pageSize); }else if(propagandize.getPropagandizeNum() != null){ System.out.println("num"); query = session.createQuery("from Propagandize p where p.propagandizeNum.propagandizeNumId="+propagandize.getPropagandizeNum().getPropagandizeNumId()+"order by p.propagandizeId"); query.setFirstResult(offset); query.setMaxResults(pageSize); }else{ System.out.println("three"); query = session.createQuery("from Propagandize p where p.propagandizestuff.stuffId="+propagandize.getPropagandizestuff().getStuffId()+"order by p.propagandizeId"); query.setFirstResult(offset); query.setMaxResults(pageSize); } return query.list(); } }); PagerModel pm = new PagerModel(); pm.setTotal(total); System.out.println("total++++++++++++++++"+total); pm.setList(propagandizeList); return pm; }
for (int i = 0; i < pm.getList().size(); i++) { temp = (Propagandize) pm.getList().get(i); temp.setCustomerGradeId(this.gradeDao.getGradeById( String.valueOf(temp.getCustomerGradeId())).getGradeId()); }
temp.setCustomerGradeId(this.gradeDao.getGradeById( String.valueOf(temp.getCustomerGradeId())).getGradeId());
[解决办法]
我是围观群众。。。
[解决办法]
娴熟的if..else
[解决办法]
估计让我写,也是这样的情况
[解决办法]
时间紧的话我也可能这样做的了...
非得压缩代码量的话,而且确实可以压缩,因为它的模型的共性很明显,可用数据结构工具处理,甚至要用运行时识别。不过那样可读性的话...还有一但模型变了,修改起来就麻烦,归结起来就是取舍问题了
[解决办法]
的确有点销魂!
[解决办法]
可能 想的太多啦,或者逻辑有点问题!
[解决办法]
代码写完后,要优化。。。。
[解决办法]
这样写有啥不好?
[解决办法]
我之前做过的一个项目,风格和这个很像~
SQL语句通过if else 拼出来。。。
[解决办法]
路过~~ if语句下边有一条语句是不是不用要花括号?!
[解决办法]
这个实现什么功能,还没看懂
[解决办法]
看上去好整齐啊!
[解决办法]
思路是很清晰,不过在此基础上还是优化下吧。代码分支太多,而且每行代码太长
[解决办法]
[解决办法]
这代码不错.
[解决办法]
这样的我都不会写
[解决办法]
大家都没看出重点,for循环是亮点。。。
for (int i = 0; i < pm.getList().size(); i++) {
temp = (Propagandize) pm.getList().get(i);
temp.setCustomerGradeId(this.gradeDao.getGradeById(
String.valueOf(temp.getCustomerGradeId())).getGradeId());
}
执行完后除了能增加数据库的读写压力外,对业务没有任何意义。。。
[解决办法]
这样写好像是不错,但你为什么不封装一个参数类呢,这样应该会比这个简单很多啊
[解决办法]
还算好呢。。我有一个还写在js里面,但那太不安全了。