The operation of the database my base class (HIBERNATE)
package com.huicui.util;
import java.io.Serializable;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;
import com.dudujava.model.HibernateSessionFactory;
/**
*
*
* @author dudujava
*
*/
public class DBUtil {
static Logger logger = Logger.getLogger(DBUtil.class.getName());
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
}
public static Object findByID(String objfullname, int id) {
try {
return HibernateSessionFactory.getSession().get(objfullname.trim(),
id);
} catch (Exception e) {
logger.error(e);
e.printStackTrace();
return null;// TODO: handle exception
}
}
public static Object findByID(String objfullname, String id) {
Integer itemp = null;
try {
itemp = Integer.parseInt(id);
} catch (Exception e) {
logger.error(e); // TODO: handle exception
}
return findByID(objfullname, itemp);
}
public static void modify(String sfullname, int id, Map map) {
if (map.isEmpty())
return;
try {
Object obj = findByID(sfullname, id);
save(obj, map);
} catch (Exception e) {
// TODO Auto-generated catch block
logger.error(e);
e.printStackTrace();
}
}
public static void modify(String sfullname, String sid, Map map) {
modify(sfullname,Integer.parseInt(sid), map);
}
/**
* @param obj
*/
public static int save(Object obj) {
Transaction tx = null;
Session session = null;
try {
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
Serializable sObj = session.save(obj);
tx.commit();
return (Integer.parseInt(sObj.toString()));
} catch (HibernateException e) {
tx.rollback();
e.printStackTrace();
logger.error(e);
return -1;
} finally {
try {
session.close();
} catch (Exception e) {
}
}
}
/**
* @param obj
*/
public static void delete(Object obj) {
Transaction tx = null;
Session session = null;
try {
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
session.delete(obj);
tx.commit();
} catch (HibernateException e) {
tx.rollback();
logger.error(e);
e.printStackTrace();
} finally {
try {
session.close();
} catch (Exception e) {
}
}
}
/**
* @param listobj POJO List
*/
@SuppressWarnings("unchecked")
public static void delete(List listobj) {
Transaction tx = null;
Session session = null;
try {
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
for (int i = 0; i < listobj.size(); i++) {
session.delete(listobj.get(i));
}
tx.commit();
} catch (HibernateException e) {
tx.rollback();
e.printStackTrace();
} finally {
try {
session.close();
} catch (Exception e) {
}
}
}
/**
*
* @param sql HQL
* eg:delete from User where Country.id=1;
*/
public static int modify(String sql) {
Transaction tx = null;
Session session = null;
try {
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
Query q = session.createQuery(sql);
int itmep = q.executeUpdate();
tx.commit();
return itmep;
} catch (HibernateException e) {
tx.rollback();
e.printStackTrace();
return -1;
} finally {
try {
session.close();
} catch (Exception e) {
}
}
}
public static int modifyBYHql(String sql) {
Transaction tx = null;
Session session = null;
try {
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
Query q = session.createQuery(sql);
int itmep = q.executeUpdate();
tx.commit();
return itmep;
} catch (HibernateException e) {
tx.rollback();
e.printStackTrace();
return -1;
} finally {
try {
session.close();
} catch (Exception e) {
}
}
}
public static int modifyBYsql(String sql) {
Transaction tx = null;
Session session = null;
try {
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
Query q = session.createSQLQuery(sql);
int itmep = q.executeUpdate();
tx.commit();
return itmep;
} catch (HibernateException e) {
tx.rollback();
e.printStackTrace();
return -1;
} finally {
try {
session.close();
} catch (Exception e) {
}
}
}
/**
* @param classname
* @param sObjID
* @throws Exception
*/
public static void delete(String classname, String sObjID)
throws Exception {
Transaction tx = null;
Session session = null;
try {
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
Object obj = findByID(classname, sObjID);
if (obj != null)
session.delete(obj);
tx.commit();
} catch (HibernateException e) {
tx.rollback();
logger.error(e);
e.printStackTrace();
} finally {
try {
session.close();
} catch (Exception e) {
}
}
}
public static void save(List list) {
Transaction tx = null;
Session session = null;
try {
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
for (int i = 0; i < list.size(); i++) {
session.save(list.get(i));
}
tx.commit();
} catch (HibernateException e) {
tx.rollback();
e.printStackTrace();
logger.error(e);
} finally {
try {
session.close();
} catch (Exception e) {
}
}
logger.debug("save successfull save object number:"+list.size());
}
@SuppressWarnings("unchecked")
public static int save(String sname, Map map) {
Object objtemp = null;
try {
objtemp =Class.forName(sname.trim()).newInstance();
} catch (Exception e1) {
// TODO Auto-generated catch block
logger.error(e1);
e1.printStackTrace();
}
return DBUtil.save(objtemp,map);
}
@SuppressWarnings("unchecked")
public static int save(String sname,String sid, Map map) {
Object objtemp = null;
try {
objtemp =findByID(sname,sid);
} catch (Exception e1) {
// TODO Auto-generated catch block
logger.error(e1);
e1.printStackTrace();
}
return DBUtil.save(objtemp,map);
}
@SuppressWarnings("unchecked")
public static int save(Object objtemp, Map map) {
String skey = "";
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
skey = it.next().toString().trim();
if (skey.length() == 0) {
logger.error("key not allow NULL ,MAP:" + map);
continue;
}
Object[] args = new Object[1];
args[0] = map.get(skey);
try {
ReflectUtil.invokeMethod(objtemp, "set"
+ skey.substring(0, 1).toUpperCase()
+ skey.substring(1), args);
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
return -1;
}
}
return DBUtil.save(objtemp);
}
public static List searchByHql(String sql) {
return HibernateSessionFactory.getSession().createQuery(sql).list();
}
public static List searchBySql(String sql) {
try {
return HibernateSessionFactory.getSession().createSQLQuery(sql)
.list();
} catch (Exception e) {
e.printStackTrace();
System.out.println("your input sql is incorrect!");
// TODO: handle exception
}
return null;
}
@SuppressWarnings("unchecked")
public static List search(String classname, Map map, int ibegin, int inum)
{
List list = new ArrayList();
Session session = null;
Transaction tran = null;
try {
session = HibernateSessionFactory.getSession();
tran = session.beginTransaction();
Criteria temp = session.createCriteria(Class.forName(classname));
String skey = "";
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
Object obj = it.next();
if (obj instanceof List) {
List listTemp = (List) obj;
for (int i = 0; i < listTemp.size(); i++) {
temp = temp.add((Criterion) (listTemp.get(i)));
}
continue;
}
if (obj instanceof Order) {
temp = temp.addOrder((Order) obj);
continue;
}
skey = obj.toString();
temp = temp.add(Expression.eq(skey, map.get(skey)));
}
temp.setFirstResult(ibegin);
temp.setMaxResults(inum);
list = temp.list();
} catch (Exception e) {
// e.printStackTrace();
} finally {
session.close();
}
return list;
}
/**
* @param classname
* @param map
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static List search(String classname, Map map) {
List list = new ArrayList();
Session session = null;
Transaction tran = null;
try {
session = HibernateSessionFactory.getSession();
Criteria temp = session.createCriteria(Class.forName(classname));
if (map.isEmpty())
return temp.list();
String skey = "";
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
Object obj = it.next();
if (obj instanceof List) {
List listTemp = (List) obj;
for (int i = 0; i < listTemp.size(); i++) {
temp = temp.add((Criterion) (listTemp.get(i)));
}
continue;
}
if (obj instanceof Order) {
temp = temp.addOrder((Order) obj);
continue;
}
skey = obj.toString();
temp = temp.add(Expression.eq(skey, map.get(skey)));
}
list = temp.list();
} catch (Exception e) {
logger.info(e);
e.printStackTrace();
} finally {
session.close();
}
return list;
}
/**
* @param classname POJO full name
* @param map put restrictions keys values
* @param sprefix input data prefix
* @return POJO list
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static List search(String classname, Map map, String sprefix)
{
List list = new ArrayList();
Session session = null;
Transaction tran = null;
List pc = null;
try {
session = HibernateSessionFactory.getSession();
tran = session.beginTransaction();
Criteria temp = session.createCriteria(Class.forName(classname));
if (map.isEmpty())
return temp.list();
temp.setMaxResults(50);
String skey = "";
map = doFilter(map, sprefix);
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
Object obj = it.next();
if (obj instanceof List) {
List listTemp = (List) obj;
for (int i = 0; i < listTemp.size(); i++) {
temp = temp.add((Criterion) (listTemp.get(i)));
}
continue;
}
if (obj instanceof Order) {
temp = temp.addOrder((Order) obj);
continue;
}
skey = obj.toString();
temp = temp.add(Expression.eq(skey, map.get(skey)));
}
list = temp.list();
} catch (Exception e) {
logger.info(e);
// e.printStackTrace();
} finally {
session.close();
}
return list;
}
@SuppressWarnings("unchecked")
public static Map doFilter(Map map) {
return doFilter(map, "para");
}
@SuppressWarnings("unchecked")
public static Map doFilter(Map map, String sprefix) {
if (sprefix == null || sprefix.trim().length() == 0)
sprefix = "para";
return doFilter(map, sprefix, false);
}
@SuppressWarnings("unchecked")
public static Map doFilter(Map map, String sprefix, boolean isModify) {
if (map.isEmpty())
return map;
Map maptemp = new HashMap();
for (Iterator iterator = map.keySet().iterator(); iterator.hasNext();) {
Object objtemp = iterator.next();
if (objtemp instanceof List) {
maptemp.put(objtemp, objtemp);
continue;
}
if (objtemp instanceof String)
{
String str = objtemp.toString();
if (!isModify) //////search donot care null empoty
{
Set set = new HashSet();
set.add("-1");
set.add("SELECT");
if (set.contains(map.get(str).toString().trim()
.toUpperCase())) {
continue;
}
if (map.get(str).toString().trim().length() == 0)
continue;
}
if (!str.trim().startsWith(sprefix + "_"))
continue;
String[] strset = str.split("_");
if (strset.length < 3) {
continue;
}
String stype = strset[2].trim();
Object obj = null;
String svalue=map.get(str).toString();
boolean bempoty=(svalue.trim().length()==0);
try {
if (stype.equalsIgnoreCase("float"))
{
if(bempoty)
obj=new Float(0.0f);
else
obj = Float.parseFloat(map.get(str).toString());
}
if (stype.equalsIgnoreCase("int")|| stype.equalsIgnoreCase("integer"))
{
if(bempoty)
obj=new Integer(0);
else
obj = Integer.parseInt(map.get(str).toString());
}
if (stype.equalsIgnoreCase("double"))
{
if(bempoty)obj =new Double(0.0d);
else
obj = Double.parseDouble(map.get(str).toString());
}
if (stype.equalsIgnoreCase("date")) {
DateFormat df = DateFormat.getDateInstance();
if(bempoty)obj = new Date();
else
obj = df.parse(map.get(str).toString());
}
if (stype.equalsIgnoreCase("string")
|| stype.equalsIgnoreCase("str"))
obj = map.get(str);
maptemp.put(strset[1].trim(), obj);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
return maptemp;
}
}
Related Posts of The operation of the database my base class (HIBERNATE)
-
Servlet brief introduction
Servlet brief introduction: Servlet is a small application server Are used to complete the B / S architecture, the client requests the response to treatment Platform independence, performance, able to run thread Servlet API for Servlet provides the s ...
-
First Hibernate Example
Curd a simple example. Source does not contain the dependent libraries, or playing too much of the package. PO object Note: One must have the default constructor 2 non-final modified. Otherwise useless lazy loading. UserDAOImpl category code, and oth ...
-
Struts2 + hibernate + spring problem user log in
dao layer services layer action jsp <tr> <td align="center"> <b> user name: </ b> </ td> <td> <s: textfield name = "czyNumber" cssClass = "textstyle" theme = "simple" size = &q
-
The level Hibernate cache
Hibernate cache level: (1) a cache is very short and the session life cycle consistent, also known as session-level cache-level cache or transaction-level cache (2) Ways of Supporting level cache: get (); load (); iterator (); only entity object cach ...













Leave a Reply