博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
泛型总结--待续
阅读量:6248 次
发布时间:2019-06-22

本文共 3917 字,大约阅读时间需要 13 分钟。

  http://www.cnblogs.com/lwbqqyumidi/p/3837629.html

http://www.blogjava.net/icewee/archive/2012/04/27/376741.html  

1 package com.zq.www.common;  2   3 import java.lang.reflect.ParameterizedType;  4 import java.util.List;  5   6 import javax.annotation.Resource;  7   8 import org.hibernate.Query;  9 import org.hibernate.Session; 10 import org.hibernate.SessionFactory; 11 import org.springframework.transaction.annotation.Transactional; 12  13 //使用泛型 14 @Transactional  15 public class BaseDAO
{ 16 17 //spring里的注解,实现自动注入(自动new) 18 @Resource 19 private SessionFactory sessionFactory; 20 21 22 /* 23 * 得到session,所有增删改查都从session开始 24 */ 25 26 public SessionFactory getSessionFactory() { 27 return sessionFactory; 28 } 29 30 31 public void setSessionFactory(SessionFactory sessionFactory) { 32 this.sessionFactory = sessionFactory; 33 } 34 35 public Session gs() { 36 return this.sessionFactory.getCurrentSession(); 37 } 38 39 40 41 /* 42 * 根据T得到真正的class类型,使用反射 43 */ 44 protected Class
entityClass; 45 46 protected Class getEntityClass() { 47 if (entityClass == null) { 48 entityClass = (Class
) ((ParameterizedType) getClass() 49 .getGenericSuperclass()).getActualTypeArguments()[0]; 50 } 51 return entityClass; 52 } 53 54 55 56 57 /* 58 * 添加 59 */ 60 @Transactional 61 public void add(T t) { 62 gs().save(t); 63 } 64 65 /* 66 * 更新 67 */ 68 @Transactional 69 public void update(T t) { 70 gs().update(t); 71 } 72 73 /* 74 * 删除 75 */ 76 @Transactional 77 public void delete(Integer id) { 78 gs().delete(this.get(id)); 79 } 80 81 82 /* 83 * 查询 84 */ 85 @Transactional 86 public T get(Integer id) { 87 T instance = (T) gs().get(getEntityClass(), id); 88 return instance; 89 90 } 91 92 93 94 /* 95 * 自动判断添加或修改,保存 96 */ 97 @Transactional 98 public void save(T t) { 99 gs().saveOrUpdate(t);100 }101 102 103 /*104 * 查询全部105 */106 @Transactional107 public List
listall() {108 List
result=gs().createCriteria(getEntityClass()).list();109 return result;110 }111 112 113 /*114 * 通用查询115 */ 116 @Transactional117 public List
getListByHQL(final String hqlString, final List values) {118 Query query = gs().createQuery(hqlString);119 if (values != null) {120 Object[] vvs = values.toArray(new Object[values.size()]);121 for (int i = 0; i < vvs.length; i++) {122 query.setParameter(i, vvs[i]);123 }124 }125 return query.list();126 }127 128 /* 执行复杂的sql查询129 * 130 * 得到一列:List
131 * 132 * 得到多列:List
133 */134 @Transactional(readOnly = true)135 public List getListBySQL(final String sqlString, final List values) {136 Query query = gs().createSQLQuery(sqlString);137 if (values != null) {138 Object[] vvs = values.toArray(new Object[values.size()]);139 for (int i = 0; i < vvs.length; i++) {140 query.setParameter(i, vvs[i]);141 }142 }143 return query.list();144 }145 146 147 148 /* 执行复杂的sql更新、删除、添加149 * 150 * 得到受影响的行数151 * 152 */153 @Transactional154 public Integer executeSQL(final String sqlString, final List values) {155 Query query = gs().createSQLQuery(sqlString);156 if (values != null) {157 Object[] vvs = values.toArray(new Object[values.size()]);158 for (int i = 0; i < vvs.length; i++) {159 query.setParameter(i, vvs[i]);160 }161 }162 return query.executeUpdate();163 }164 165 166 }

//

List
result=gs().createCriteria(getEntityClass()).list();??????

 

转载于:https://www.cnblogs.com/zzzzw/p/4954970.html

你可能感兴趣的文章
hdu 1035 Robot Motion(dfs)
查看>>
Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
查看>>
socket Blocking connections
查看>>
使用 Buildot 实现持续集成(转载)
查看>>
Top 10 Universities for Artificial Intelligence
查看>>
LintCode,hihoCoder,LeetCode有什么区别?
查看>>
ArcGIS案例学习1_2
查看>>
从一个国内普通开发者的视角谈谈Sitecore
查看>>
ArcGIS案例学习笔记-聚类点的空间统计特征
查看>>
DoS 拒绝服务攻击专题
查看>>
平面报表设计体验
查看>>
产品经理修炼之道
查看>>
Oracle PL/SQL攻略
查看>>
xBIM 插入复制功能
查看>>
HDU 3487 Play with Chain(区间FLIP、CUT)
查看>>
BZOJ 1047 理想的正方形(单调队列)
查看>>
Java类加载器深入探索
查看>>
关于 Java 数组的 12 个最佳方法
查看>>
HDUOJ 2056 Rectangles (几何计算问题)
查看>>
FileTracker : error FTK1011编译错误
查看>>