一、代码优化
- 我们将那些接口和实现接口的逻辑,去建立一个基础的接口和逻辑实现,让这些接口和实现去继承这些接口
- 那这个接口要怎样建立呢?这个实现的类要怎样建立呢?
这个包下面的基础接口和基础类。
我们建立这个接口BasicServiceInter.java
package com.wang.basic;
import java.util.List;
public interface BasicServiceInter {
//生命常用的方法
//1.通过id获取对象
public Object findById(Class clazz,java.io.Serializable id);
//2.统一的查询方法
public List executeQuery(String hql, Object []parameters);
//3.查询分页
public List executeQueryByPage(String hql, Object []parameters,Integer pageNow,Integer pageSize);
//4.添加一个对象
public void add(Object obj);
//5.如果以后需要,hql->删除,修改
public List executeUpdate(String hql, Object []parameters);
}
View Code
建立这个类去实现这个接口BasicService.java
package com.wang.basic;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
public class BasicService implements BasicServiceInter {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
/**
* add增加对象,save(object)
*/
public void add(Object obj) {
this.sessionFactory.getCurrentSession().save(obj);
}
/**
* 查询
*/
public List executeQuery(String hql, Object[] parameters) {
Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
if (parameters != null && parameters.length > 0) {
for (int i = 0; i < parameters.length; i++) {
query.setParameter(i, parameters[i]);
}
}
return query.list();
}
/**
* 分页
*/
public List executeQueryByPage(String hql, Object[] parameters,
Integer pageNow, Integer pageSize) {
Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
if (parameters != null && parameters.length > 0) {
for (int i = 0; i < parameters.length; i++) {
query.setParameter(i, parameters[i]);
}
}
return query.setFirstResult((pageNow-1)*pageSize).setMaxResults(pageSize).list();
}
public List executeUpdate(String hql, Object[] parameters) {
// TODO Auto-generated method stub
return null;
}
/**
* 根据id得到对象
*/
public Object findById(Class clazz, Serializable id) {
return this.sessionFactory.getCurrentSession().get(clazz, id);
}
}
View Code
这里用到Query在这个包下面org.hibernate.Query
让那些接口去继承这个接口,让那些类去继承那个类,这样我们就可以看成是在调用那个最基础的类,也就是最公用的类。
作者:少帅
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文版权归作者所有,欢迎转载,但请保留该声明。