Hql 中 dao 层 以及daoimpl 层的代码,让mvc 模式更直观简洁
1.BaseDao接口:
//使用BaseDao<T> 泛型 ,在service中注入的时候,只需要将T换为对应的bean即可
public interface BaseDao<T> {
public int save(T t);
public int update(String hql, Object[] paramlist);
public int delete(String hql, Object[] paramlist);
public int countAll(String hql, Object[] paramlist);
public int countAll(String hql, String key, Object[] ids);
public int countAll(String hql, Object[] paramlist, String key, Object[] ids);
public int countAllBysql(String hql, T t, Object[] paramlist, String key, Object[] ids);
public Map<String, Object> get(String hql);
public Map<String, Object> get(String hql, Object[] paramlist);
public int updateBySql(String hql, Object[] paramlist);
public List<Map<String, Object>> listAll(String hql, String parkey,
Object[] ids);
public List<Map<String, Object>> listAllPage(String hql, String parkey,
Object[] ids, Object[] paramlistPage);
public List<Map<String, Object>> listAllPage(String hql,
Object[] paramlist, String key, Object[] ids, Object[] paramlistPage);
public List<Map<String, Object>> listAllPageBysql(String hql,T t,
Object[] paramlist, String key, Object[] ids, Object[] paramlistPage);
public List<Map<String, Object>> listAll(String hql);
public List<T> listAllBySql(String hql, T t, Object[] paramlist);
public List<Map<String, Object>> listAll(String hql, Object[] paramlist);
public List<T> listObject(String hql, Object[] paramlist);
public List<Map<String, Object>> listAllPage(String hql,
Object[] paramlist, Object[] paramlistPage);
public List<Map<String, Object>> listAllPage(String hql, String key,
Object[] ids);
public List<Map<String, Object>> listAllPage(String hql,
Object[] paramlist, String key, Object[] ids);
}
2.接口的实现 BaseDaoimpl
@Repository("baseDao")
public class BaseDaoImpl<T> implements BaseDao<T> {
protected static final Logger LOGGER = LoggerFactory
.getLogger(BaseDaoImpl.class);
@Autowired
@Qualifier("sessionFactory")
private SessionFactory sessionFactory;
public Session getSession() {
return sessionFactory.getCurrentSession();
}
@Override
public int save(T t) {
return (int) getSession().save(t);
}
@Override
public int update(String hql, Object[] paramlist) {
Query query = getSession().createQuery(hql);
setParameters(query, paramlist);
return query.executeUpdate();
}
@Override
public int updateBySql(String hql, Object[] paramlist) {
Query query = getSession().createSQLQuery(hql);
setParameters(query, paramlist);
return query.executeUpdate();
}
@Override
public int delete(String hql, Object[] paramlist) {
Query query = getSession().createQuery(hql);
setParameters(query, paramlist);
return query.executeUpdate();
}
@SuppressWarnings("unchecked")
@Override
public int countAll(String hql, Object[] paramlist) {
Query query = getSession().createQuery(hql);
setParameters(query, paramlist);
List<Map<String, Object>> results = query.list();
return results.size();
}
@SuppressWarnings("unchecked")
@Override
public int countAll(String hql, String key, Object[] ids) {
Query query = getSession().createQuery(hql);
setInParameters(query, key, ids);
List<Map<String, Object>> results = query.list();
return results.size();
}
@SuppressWarnings("unchecked")
@Override
public int countAll(String hql, Object[] paramlist, String key, Object[] ids) {
Query query = getSession().createQuery(hql);
setParameters(query, paramlist);
setInParameters(query, key, ids);
List<Map<String, Object>> results = query.list();
return results.size();
}
@SuppressWarnings("unchecked")
@Override
public int countAllBysql(String hql, T t, Object[] paramlist, String key, Object[] ids) {
Query query = getSession().createSQLQuery(hql).addEntity(t.getClass());
setParameters(query, paramlist);
setInParameters(query, key, ids);
List<Map<String, Object>> results = query.list();
return results.size();
}
@SuppressWarnings("unchecked")
@Override
public List<Map<String, Object>> listAll(String hql) {
Query query = getSession().createQuery(hql);
List<Map<String, Object>> results = query.list();
return results;
}
@SuppressWarnings("unchecked")
@Override
public List<Map<String, Object>> listAll(String hql, Object[] paramlist) {
Query query = getSession().createQuery(hql);
setParameters(query, paramlist);
List<Map<String, Object>> results = query.list();
return results;
}
@SuppressWarnings("unchecked")
@Override
public List<Map<String, Object>> listAll(String hql, String key,
Object[] ids) {
Query query = getSession().createQuery(hql);
setInParameters(query, key, ids);
List<Map<String, Object>> results = query.list();
return results;
}
@SuppressWarnings("unchecked")
@Override
public List<T> listAllBySql(String hql, T t, Object[] paramlist) {
Query query = getSession().createSQLQuery(hql).addEntity(t.getClass());// ;
setParameters(query, paramlist);
List<T> results = query.list();
return results;
}
@SuppressWarnings("unchecked")
@Override
public List<T> listObject(String hql, Object[] paramlist) {
Query query = getSession().createQuery(hql);
setParameters(query, paramlist);
List<T> results = query.list();
return results;
}
@SuppressWarnings("unchecked")
@Override
public List<Map<String, Object>> listAllPage(String hql,
Object[] paramlist, Object[] paramlistPage) {
Query query = getSession().createQuery(hql);
setParameters(query, paramlist);
query.setFirstResult(Integer.parseInt(paramlistPage[0] + ""));
query.setMaxResults(Integer.parseInt(paramlistPage[1] + ""));
List<Map<String, Object>> results = query.list();
return results;
}
@SuppressWarnings("unchecked")
@Override
public List<Map<String, Object>> listAllPage(String hql, String key,
Object[] ids, Object[] paramlistPage) {
Query query = getSession().createQuery(hql);
setInParameters(query, key, ids);
query.setFirstResult(Integer.parseInt(paramlistPage[0] + ""));
query.setMaxResults(Integer.parseInt(paramlistPage[1] + ""));
List<Map<String, Object>> results = query.list();
return results;
}
@SuppressWarnings("unchecked")
@Override
public List<Map<String, Object>> listAllPage(String hql, String key,
Object[] ids) {
Query query = getSession().createQuery(hql);
setInParameters(query, key, ids);
List<Map<String, Object>> results = query.list();
return results;
}
@SuppressWarnings("unchecked")
@Override
public List<Map<String, Object>> listAllPage(String hql,
Object[] paramlist, String key, Object[] ids, Object[] paramlistPage) {
Query query = getSession().createQuery(hql);
setParameters(query, paramlist);
setInParameters(query, key, ids);
query.setFirstResult(Integer.parseInt(paramlistPage[0] + ""));
query.setMaxResults(Integer.parseInt(paramlistPage[1] + ""));
List<Map<String, Object>> results = query.list();
return results;
}
@SuppressWarnings("unchecked")
@Override
public List<Map<String, Object>> listAllPageBysql(String hql,T t,
Object[] paramlist, String key, Object[] ids, Object[] paramlistPage) {
Query query = getSession().createSQLQuery(hql).addEntity(t.getClass());
setParameters(query, paramlist);
setInParameters(query, key, ids);
query.setFirstResult(Integer.parseInt(paramlistPage[0] + ""));
query.setMaxResults(Integer.parseInt(paramlistPage[1] + ""));
List<Map<String, Object>> results = query.list();
return results;
}
@SuppressWarnings("unchecked")
@Override
public Map<String, Object> get(String hql) {
Map<String, Object> resultMap = new HashMap<String, Object>();
Query query = getSession().createQuery(hql);
List<Map<String, Object>> results = query.list();
if (results.size() > 0) {
resultMap = results.get(0);
}
return resultMap;
}
@SuppressWarnings("unchecked")
@Override
public Map<String, Object> get(String hql, Object[] paramlist) {
Map<String, Object> resultMap = new HashMap<String, Object>();
Query query = getSession().createQuery(hql);
setParameters(query, paramlist);
List<Map<String, Object>> results = query.list();
if (results.size() > 0) {
resultMap = results.get(0);
}
return resultMap;
}
protected void setParameters(Query query, Object[] paramlist) {
if (paramlist != null) {
for (int i = 0; i < paramlist.length; i++) {
if (paramlist[i] instanceof Date) {
query.setTimestamp(i, (Date) paramlist[i]);
} else if (paramlist[i] instanceof Double) {
query.setDouble(i, (double) paramlist[i]);
} else {
query.setParameter(i, paramlist[i]);
}
}
}
}
protected void setInParameters(Query query, String key, Object[] ids) {
if (ids.length > 0) {
query.setParameterList(key, ids);
}
}
@SuppressWarnings("unchecked")
@Override
public List<Map<String, Object>> listAllPage(String hql,
Object[] paramlist, String key, Object[] ids) {
Query query = getSession().createQuery(hql);
setParameters(query, paramlist);
setInParameters(query, key, ids);
List<Map<String, Object>> results = query.list();
return results;
}
//String hql :在service 中的hql语句 Object[] paramlist : hql中的字段,先用?占位 Object[] ids: 可以使用分页工具,等其他对数据的操作,一般也是用?来占位
}
Hql 中 dao 层 以及daoimpl 层的代码,让mvc 模式更直观简洁的更多相关文章
- view是视图层+action是控制层+service是业务层+dao是数据访问层。
- Java中Action层、Service层、Modle层和Dao层的功能区分
一.Java中Action层.Service层.Modle层和Dao层的功能区分: 首先,这是现在最基本的分层方式,结合了SSH架构. modle层就是对应的数据库表的实体类.(即domain) Da ...
- java中Action层、Service层和Dao层的功能区分
Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...
- javaEE中关于dao层和services层的理解
javaEE中关于dao层和services层的理解 入职已经一个多月了,作为刚毕业的新人,除了熟悉公司的项目,学习公司的框架,了解项目的一些业务逻辑之外,也就在没学到什么:因为刚入职, 带我的那个师 ...
- 一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构-转
表现层就是看到的东西,比如你现在看到的当前页面控制层就将你的请求从页面传到后台代码逻辑层就是处理你的请求的代码DAO层就是将数据存到数据库中的代码数据库就是数据库了,存东西用的 ,DAO层就是将访问数 ...
- [转]JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分
首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对应的数据库表的实体类.Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操 ...
- java中dao层和service层的区别是什么?
首先解释面上意思,service是业务层,dao是数据访问层.呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用 ...
- JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分
Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操作,在这里可以编写自己需要的代码(比如简单的判断).Action层:引用对应的Servi ...
- 深入理解--SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用
SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...
随机推荐
- 读写CSV文件
var allFiles = Directory.GetFiles(@"D:\uploadpdf", "*.csv"); string dataIsNull = ...
- 【Python⑤】python序列---list和tuple
sequence 序列 sequence(序列)是一组有顺序的对象的集合.序列可以包含一个或多个元素,也可以没有任何元素. 我们之前所说的基本数据类型,都可以作为序列的对象.对象还可以是另一个序列.序 ...
- python 获取脚本所在目录
平时写python经常会想获得脚本所在的目录,例如有个文件跟脚本文件放在一个相对的目录位置,那就可以通过脚本文件的目录找到对应的文件,即使以后脚本文件移到其他地方,脚本也基本不需要改动(相对于写死目录 ...
- GDI与GDI+ 贴图性能对比
在做绘图相关工作,由于对显示绘制结果实时性有要求,筛选了GDI , 与GDI+ 贴图性能. 这里假设在内存中已绘制完成一张图片,现需求显示在控件上,同时,总是更新全部区域. GDI+ 实现 priva ...
- Android中的颜色设置
1.在android中经常看到设置的颜色为八位的十六进制的颜色值,例如 public static final class color { public static final int lightb ...
- http调接口
private static String doGetResult(String urlStr, Map<String, String> params) throws Exception ...
- 仓储管理系统500bug记录一下mysql 8小时超时解决办法
HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.TransientDa ...
- C++ TR1 Function Bind
在C++ 11出现以前,C++的事件一般是通过回调形试来实现,如 void (*func)(int,int,int),其实际上是一种函数指针,在C中调用时是直接写函数名在参数列表中,而在C++中,大部 ...
- 用Mockito mock普通的方法
上面的例子是很理想化的状态,但是在实际的开发中,我们需要经常调用一些依赖特定环境的函数或者调用同事写的代码,而同事仅提供了接口.这个时候就需要利用Mockito来协助我们完成测试. 当然,你可以选择e ...
- 50个C/C++源代码网站
C/C++是最主要的编程语言.这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 .这份清单提供了源代码的链接以及它们的小说明.我已尽力包括最佳的C/C++源代码的网站.这不是一个完整的 ...