/** * 在spring中使用delete语句进行删除并返回它的影响行数 * @param hql * @return */ public int deleteByHql(final String hql){
Object number = super.getHibernateTemplate().execute( new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException {
} /** * 获得表的总数据 * @param tableName * @return */ public int getRowCounts(String tableName){
final String hql = "select count(table) from "+tableName+" as table"; List list = super.getHibernateTemplate().find(hql); int rows = Integer.parseInt(list.get(0).toString()); return rows;
}
/** * 获得总页数 * @param tableName * @param pageSize * @return */ public int getPageCounts(String tableName,int pageSize){ int count = this.getRowCounts(tableName); int pageCount = 0; if(count%pageSize==0){ pageCount = count/pageSize; } else{ pageCount = count/pageSize +1; } return pageCount; }
/** * 获得模糊查询的总数据量 * @param hql * @return */ public int getRowCountsByLike(String hql,Map map){
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.it.oa.dao.BaseSpringHibDao;public class BaseSpringHibDaoImpl extends HibernateDaoSupport implements BaseSpringHibDao { /**
* 添加新的对象
*/
public boolean add(Object obj) {
try {
super.getHibernateTemplate().save(obj);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
} /**
* 根据id和类删除对象
*/
public boolean del(Class clz,Serializable id) {
Object itme = null;
try {
//获取到对象的实体
itme = this.get(clz, id);
super.getHibernateTemplate().delete(itme);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 根据对象删除
* @param obj
* @return
*/
public boolean del(Object obj){
try {
super.getHibernateTemplate().delete(obj);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 在spring中使用delete语句进行删除并返回它的影响行数
* @param hql
* @return
*/
public int deleteByHql(final String hql){
Object number = super.getHibernateTemplate().execute(
new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql);
int num = query.executeUpdate();
return num;
}
}
);
return Integer.parseInt(number.toString());
} /**
* 根据ID查询具体的详细信息
*/
public Object get(Class clz,Serializable id) {
Object item = null;
try {
item = super.getHibernateTemplate().get(clz, id);
} catch (Exception e) {
e.printStackTrace();
}
return item;
} /**
* 修改对象信息
*/
public boolean update(Object obj) {
try {
super.getHibernateTemplate().update(obj);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
} /**
* 查询所有用户详细信息
* 根据类的对象进行查询
* 分页查询
*/
public List search(final Class clz,final int pageNo ,final int pageSize) {
return super.getHibernateTemplate().executeFind(
new HibernateCallback(){ public Object doInHibernate(Session session)
throws HibernateException, SQLException {
//查询该类的所有信息
Criteria c = session.createCriteria(clz);
c.setFirstResult((pageNo-1)*pageSize);
c.setMaxResults(pageSize);
return c.list();
}
}
);
}
/**
* 根据类查询其所有信息
*/
public List search(final Class clz) {
return super.getHibernateTemplate().executeFind(
new HibernateCallback(){ public Object doInHibernate(Session session)
throws HibernateException, SQLException {
//查询该类的所有信息
Criteria c = session.createCriteria(clz);
return c.list();
}
}
);
}
/**
* 根据hql语句进行查询
* @param hql
* @return
*/
public List search(final String hql){
return super.getHibernateTemplate().executeFind(
new HibernateCallback(){ public Object doInHibernate(Session session)
throws HibernateException, SQLException {
//查询该类的所有信息
Query q = session.createQuery(hql);
return q.list();
}
}
);
} /**
* 根据传递的hql执行查询
* 分页查询,
*/ public List search(final String hql,final int pageNo ,final int pageSize) {
return super.getHibernateTemplate().executeFind(
new HibernateCallback(){ public Object doInHibernate(Session session)
throws HibernateException, SQLException {
//查询该类的所有信息
Query q = session.createQuery(hql);
q.setFirstResult((pageNo-1)*pageSize);
q.setMaxResults(pageSize);
return q.list();
}
}
);
}
/**
* 获得表的总数据
* @param tableName
* @return
*/
public int getRowCounts(String tableName){
final String hql = "select count(table) from "+tableName+" as table"; List list = super.getHibernateTemplate().find(hql);
int rows = Integer.parseInt(list.get(0).toString());
return rows;
}
/**
* 获得总页数
* @param tableName
* @param pageSize
* @return
*/
public int getPageCounts(String tableName,int pageSize){
int count = this.getRowCounts(tableName);
int pageCount = 0;
if(count%pageSize==0){
pageCount = count/pageSize;
}
else{
pageCount = count/pageSize +1;
}
return pageCount;
}
/**
* 获得模糊查询的总数据量
* @param hql
* @return
*/
public int getRowCountsByLike(String hql,Map map){
List list = this.search(map, hql);
return Integer.parseInt(list.get(0).toString());
}
/**
* 使用map集合和hql语句进行分页查询
* @param mapValue 集合 保存了类的属性名和对应该属性的值 当中的key等于hql中的属性
* @param hql 执行的hql语句
* @param pageNo 当前页数
* @param pageSize 每页显示条数
* @return 返回list集合
*/
public List search(final Map mapValue,final String hql,final int pageNo,final int pageSize){
return super.getHibernateTemplate().executeFind(
new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql);
//取出map中的key key等于hql语句中的属性名
Set setkey = mapValue.keySet();
Iterator it = setkey.iterator();
while(it.hasNext()){
//从集合中取出值
String key = it.next().toString();
//取出对应属性的值
String value = mapValue.get(key).toString();
query.setString(key, value);
}
query.setFirstResult((pageNo-1)*pageSize);
query.setMaxResults(pageSize);
return query.list();
}
}
);
}
/**
* 使用map集合和hql语句进行查询
* @param mapValue 集合 保存了类的属性名和对应该属性的值 当中的key等于hql中的属性
* @param hql 执行的hql语句
* @return 返回list集合
*/
public List search(final Map mapValue,final String hql){
return super.getHibernateTemplate().executeFind(
new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql);
//取出map中的key key等于hql语句中的属性名
Set setkey = mapValue.keySet();
Iterator it = setkey.iterator();
while(it.hasNext()){
//从集合中取出值 这个值要对应到类的属性
String key = it.next().toString();
//取出对应属性的值
String value = mapValue.get(key).toString();
query.setString(key, value);
}
return query.list();
}
}
);
}
}
就这了,其他你自己想,底层
this.getHibernateTemplate().save(list.get(i));
}
public boolean save(ArrayList list) {
Session session = HibernateSessionFactory.getSession();
try {
Transaction tx = session.beginTransaction();
for (int i = 0; i < list.size(); i++) {
session.save(list.get(i));
}
tx.commit();
return true;
} catch (Exception e) {
tx.rollback();
// TODO: handle exception
e.printStackTrace();
return false;
} finally {
session.close();
}
}
try {
Query query = session.createQuery(hql);
if (list != null || list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
query.setParameter(i, list.get(i));
}
}
return query.list();
} catch (Exception ex) {
ex.printStackTrace();
return null;
} finally { session.close(); }
} /**
* 根据hql查询 传入代替语句中?值的数组
*/
public List getList(String hql, Object[] obj) {
Session session = super.getSession();
try {
Query query = session.createQuery(hql);
if (obj != null || obj.length > 0) {
for (int i = 0; i < obj.length; i++) {
query.setParameter(i, obj[i]);
}
}
return query.list();
} catch (Exception ex) {
ex.printStackTrace();
return null;
} finally { session.close(); }
}