📄 basedao.java
字号:
package www.hibernate.util.method;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import org.apache.commons.beanutils.BeanUtils;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;
public class BaseDao {
public BaseDao() {
}
/**
* open session method
*
* @return sesion
*/
public Session openSession() {
return Hibernate_util.openSession();
}
/**
* start Transaction method
*
*/
public void beginTransaction() {
Hibernate_util.beginTransaction();
}
/**
* commit Transaction method
*
*/
public void commitTransaction() {
Hibernate_util.commitTransaction();
}
/**
* rollback Transaction method
*
*/
public void rollbackTransaction() {
Hibernate_util.rollbackTransaction();
}
/**
* close Session method
*
*/
public void closeSession() {
Hibernate_util.closeSession();
}
/**
* save one object method
*
* @param obj
* @return Serializable
*/
public synchronized java.io.Serializable save(Object obj) {
java.io.Serializable id = null;
try {
// 调用 openSession() 方法 得到 session
Session session = this.openSession();
// 开始事务
this.beginTransaction();
id = session.save(obj);
// 提交事务
this.commitTransaction();
} catch (Exception e) {
// 事务回滚
this.rollbackTransaction();
e.printStackTrace();
} finally {
// 关闭session 资源
this.closeSession();
}
return id;
}
/**
* persist one obj method
*
* @param obj
*/
public synchronized void persist(Object obj) {
try {
Session session = this.openSession();
this.beginTransaction();
session.persist(obj);
this.commitTransaction();
} catch (Exception e) {
this.rollbackTransaction();
e.printStackTrace();
} finally {
this.closeSession();
}
}
/**
* update one object method
*
* @param obj
*/
public synchronized void update(Object obj) {
try {
Session session = this.openSession();
this.beginTransaction();
session.update(obj);
this.commitTransaction();
} catch (Exception e) {
this.rollbackTransaction();
e.printStackTrace();
} finally {
this.closeSession();
}
}
/**
* commonality method
*
* @param query
* @param param
*/
public void common(Query query, String[] param) {
if (param != null && param.length > 0)
for (int i = 0; i < param.length; i++) {
query.setString(i, param[i]);
}
}
/**
* update or delete method
*
* @param hql
* @param param
*/
public synchronized void updateOrDelete(String hql, String[] param) {
try {
Session session = this.openSession();
this.beginTransaction();
Query query = session.createQuery(hql);
// 调用common()方法,完成所传字符串数组(String[])在该方法query下的赋值作业
this.common(query, param);
query.executeUpdate();
this.commitTransaction();
} catch (Exception e) {
this.rollbackTransaction();
e.printStackTrace();
} finally {
this.closeSession();
}
}
/**
* save or update method
*
* @param obj
*/
public synchronized void saveOrUpdate(Object obj) {
try {
Session session = this.openSession();
this.beginTransaction();
session.saveOrUpdate(obj);
this.commitTransaction();
} catch (Exception e) {
this.rollbackTransaction();
e.printStackTrace();
} finally {
this.closeSession();
}
}
/**
* delete method
*
* @param obj
*/
public synchronized void delete(Object obj) {
try {
Session session = this.openSession();
this.beginTransaction();
session.delete(obj);
this.commitTransaction();
} catch (Exception e) {
this.rollbackTransaction();
e.printStackTrace();
} finally {
this.closeSession();
}
}
/**
* query method
*
* @param hql
* @param param
* @return list
*/
public synchronized List query(String hql, String[] param) {
List list = null;
try {
Session session = this.openSession();
Query query = session.createQuery(hql);
// 调用common()方法,完成所传字符串数组(String[])在该方法query下的赋值作业
this.common(query, param);
list = query.list();
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeSession();
}
return list;
}
/**
* query method
*
* @param hql
* @param param
* @param curpage
* @param page_record
* @return list
*/
public synchronized List query(String hql, String[] param, int curpage,
int page_record) {
List list = null;
try {
Session session = this.openSession();
Query query = session.createQuery(hql);
// 调用common()方法,完成所传字符串数组(String[])在该方法query下的赋值作业
this.common(query, param);
// 实现分页的起始位置
query.setFirstResult((curpage - 1) * page_record);
// 实现分页单位(每页所显示最大记录数)
query.setMaxResults(page_record);
list = query.list();
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeSession();
}
return list;
}
/**
* query method Class joclass 为vo ,即为查询多表,而只要求返回特定字段而设置的一个vo 此方法需要用到
* apache的产品 ,把下面三个jar文件放到lib下即可 commons-beanutils-bean-collecions.jar
* commons-beanutils-beanutils-core.jar commons-beanutils.jar
*
* @param hql
* @param param
* @param curpage
* @param page_record
* @param joclass
* @return list
*/
public synchronized List query(String hql, String[] param, int curpage,
int page_record, Class joclass) {
List beans = new ArrayList();// 声明本方法所要返回的数组
Session session = this.openSession();
Query query = session.createQuery(hql);
// 调用common()方法,完成所传字符串数组(String[])在该方法query下的赋值作业
this.common(query, param);
// 实现分页的起始位置
query.setFirstResult((curpage - 1) * page_record);
// 实现分页单位(每页所显示最大记录数)
query.setMaxResults(page_record);
try {
List<Object[]> object = query.list();
if (object != null)
for (int i = 0; i < object.size(); i++){
Object jo = joclass.newInstance();
Object[] one = object.get(i);
for (Object obj : one) {
// obj对象中如果有jo对象的
BeanUtils.copyProperties(jo, obj);
}
beans.add(jo);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeSession();
}
return beans;
}
/**
* converge function method
*
* @param hql
* @param param
* @return int
*/
public int getValue(String hql, String[] param) {
int id = 0;
try {
Session session = this.openSession();
Query query = session.createQuery(hql);
this.common(query, param);
List<Integer> list = query.list();
id = list.get(0);
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeSession();
}
return id;
}
/**
* get method query one record
*
* @param clazz
* @param id
* @return object
*/
public synchronized Object get(Class clazz, Serializable id) {
Object obj = null;
try {
Session session = this.openSession();
obj = session.get(clazz, id);
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeSession();
}
return obj;
}
/**
* load method query one record
*
* @param clazz
* @param id
* @return object
*/
public synchronized Object load(Class clazz, Serializable id) {
Object one = null;
try {
Session session = this.openSession();
one = session.load(clazz, id);
Hibernate.initialize(one);
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeSession();
}
return one;
}
public synchronized Set copyProperty(String hql, String[] param, Class joclass) {
Set beans = new TreeSet();// 声明本方法所要返回的数组
Session session = this.openSession();
Query query = session.createQuery(hql);
// 调用common()方法,完成所传字符串数组(String[])在该方法query下的赋值作业
this.common(query, param);
try {
List<Object[]> object = query.list();
if (object != null)
for (int i = 0; i < object.size(); i++){
Object jo = joclass.newInstance();
Object[] one = object.get(i);
for (Object obj : one) {
// obj对象中如果有jo对象的
BeanUtils.copyProperties(jo, obj);
}
beans.add(jo);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeSession();
}
return beans;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -