?? processdata.java
字號:
package com.holpe.database;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2008</p>
*
* <p>Company: </p>
*
* @author liuxb
* @version 1.0
*/
import java.io.Serializable;
import java.sql.DatabaseMetaData;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import java.sql.CallableStatement;
public abstract class ProcessData extends _DAOBase {
public final static int MAX_TAG_COUNT = 5;// 限制每篇文章的標(biāo)簽最多五個
public final static int MAX_TAG_LENGTH = 20;// 標(biāo)簽最大長度,字節(jié)
/**
* 獲取數(shù)據(jù)庫的元信息
*
* @return
*/
public static DatabaseMetaData metadata() {
try {
return getSession().connection().getMetaData();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 添加對象
*
* @param cbean
*/
public static void save(Object cbean) {
try {
Session ssn = getSession();
beginTransaction();
ssn.merge(cbean);
commit();
} catch (HibernateException e) {
rollback();
throw e;
}
}
/*
* public static void prosave(Object cbean){ try{ String procedure ="{call
* test(?,?,?)}"; Session session =
* HibernateSessionFactory.currentSession(); Transaction tx =
* session.beginTransaction(); Connection conn = session.connection();
* CallableStatement cstmt=conn.prepareCall(procedure); cstmt.setString(1,
* "aa"); cstmt.setString(2, "bb"); cstmt.setString(3, "cc");
* cstmt.executeUpdate(); commit(); }catch(HibernateException e){
* rollback(); throw e; }
* }
*/
/**
* 添加對象
*
* @param cbean
*/
protected static void saveOrUpdate(Object cbean) {
try {
Session ssn = getSession();
beginTransaction();
ssn.saveOrUpdate(cbean);
commit();
} catch (HibernateException e) {
rollback();
throw e;
}
}
/**
* 刪除對象
*
* @param cbean
*/
protected static void delete(Object cbean) {
try {
Session ssn = getSession();
beginTransaction();
ssn.delete(cbean);
commit();
} catch (HibernateException e) {
rollback();
throw e;
}
}
/**
* 根據(jù)主鍵刪除某個對象
*
* @param objClass
* @param key
* @return
*/
protected static int delete(Class objClass, Serializable key) {
StringBuffer hql = new StringBuffer("DELETE FROM ");
hql.append(objClass.getName());
hql.append(" AS t WHERE t.id=?");
return commitUpdate(hql.toString(), new Object[]{key});
}
protected static int delete(Class objClass, int key) {
return delete(objClass, new Integer(key));
}
/**
* 寫臟數(shù)據(jù)到數(shù)據(jù)庫,把未提交的隨后又被撤消的數(shù)據(jù)稱為"臟數(shù)據(jù)" 通俗一點(diǎn)就是在幾個并發(fā)進(jìn)程中,當(dāng)有若干個進(jìn)程都用到了數(shù)據(jù)A,
* 比如當(dāng)進(jìn)程1剛剛讀了A數(shù)據(jù)后,進(jìn)程2就對A數(shù)據(jù)進(jìn)行了某種計算操作, 將數(shù)據(jù)A的值改變了并保存了,此后進(jìn)程1本想再次讀取原A數(shù)據(jù),
* 結(jié)果讀取的卻是已經(jīng)改變的A數(shù)據(jù),這樣導(dǎo)致進(jìn)程1的數(shù)據(jù)發(fā)生了錯誤, 就把此時進(jìn)程1讀取已經(jīng)改變的A數(shù)據(jù)稱為讀“臟數(shù)據(jù)”。
*/
public static void flush() {
try {
Session ssn = getSession();
if (ssn.isDirty()) {
beginTransaction();
ssn.flush();
commit();
}
} catch (HibernateException e) {
rollback();
throw e;
}
}
/**
* 根據(jù)主鍵加載對象
*
* @param beanClass
* @param ident
* @return
*/
protected static Object getBean(Class beanClass, int id) {
return getSession().get(beanClass, new Integer(id));
}
/**
* 執(zhí)行統(tǒng)計查詢語句
*
* @param hql
* @param args
* @return
*/
protected static Number executeStat(String hql, Object[] args) {
}
/**
* 執(zhí)行統(tǒng)計查詢語句
*
* @param hql
* @param args
* @return
*/
protected static int executeStatAsInt(String hql, Object[] args) {
return (executeStat(hql, args)).intValue();
}
protected static int executeStatAsInt(String hql, int parm1) {
return executeStatAsInt(hql, new Object[]{new Integer(parm1)});
}
protected static int executeStatAsInt(String hql, int parm1, int parm2) {
return executeStatAsInt(hql, new Object[]{new Integer(parm1),
new Integer(parm2)});
}
protected static int executeStatAsInt(String hql, int parm1, int parm2,
int parm3, int parm4) {
return executeStatAsInt(hql, new Object[]{new Integer(parm1),
new Integer(parm2), new Integer(parm3), new Integer(parm4)});
}
/**
* 執(zhí)行統(tǒng)計查詢語句
*
* @param hql
* @param args
* @return
*/
protected static long executeStatAsLong(String hql, Object[] args) {
return (executeStat(hql, args)).longValue();
}
/**
* 執(zhí)行普通查詢語句
*
* @param hql
* @param args
* @return
*/
protected static List findAll(String hql, Object[] args) {
return executeQuery(hql, -1, -1, args);
}
/**
* 執(zhí)行普通查詢語句
*
* @param hql
* @param args
* @return
*/
protected static List executeQuery(String hql, int fromIdx, int fetchCount,
Object[] args) {
Session ssn = getSession();
Query q = ssn.createQuery(hql);
// String parm="";
for (int i = 0; args != null && i < args.length; i++) {
// parm=args[i].toString();
q.setParameter(i, args[i]);
}
if (fromIdx > 0)
q.setFirstResult(fromIdx);
if (fetchCount > 0)
q.setMaxResults(fetchCount);
return q.list();
}
protected static List executeQuery(String hql, int fromIdx, int fetchCount,
int parm1) {
return executeQuery(hql, fromIdx, fetchCount, new Object[]{new Integer(
parm1)});
}
protected static List executeQuery(String hql, int fromIdx, int fetchCount,
int parm1, int parm2) {
return executeQuery(hql, fromIdx, fetchCount, new Object[]{
new Integer(parm1), new Integer(parm2)});
}
protected static List executeQuery(String hql, int fromIdx, int fetchCount,
int parm1, int parm2, int parm3) {
return executeQuery(hql, fromIdx, fetchCount, new Object[]{
new Integer(parm1), new Integer(parm2), new Integer(parm3)});
}
/**
* 執(zhí)行更新語句
*
* @param hql
* @param args
* @return
*/
protected static int executeUpdate(String hql, Object[] args) {
try {
Session ssn = getSession();
Query q = ssn.createQuery(hql);
// System.out.println("sql===" + q);
for (int i = 0; args != null && i < args.length; i++) {
// System.out.println("1111===" + args[i].toString());
// q.setParameter(i, args[i].toString());
q.setParameter(i, args[i]);
}
return q.executeUpdate();
} catch (HibernateException e) {
e.printStackTrace();
}
return 0;
}
protected static int executeUpdate(String hql, int parm1) {
return executeUpdate(hql, new Object[]{new Integer(parm1)});
}
/**
* 執(zhí)行更新語句
*
* @param hql
* @param args
* @return
*/
protected static int commitUpdate(String hql, Object[] args) {
try {
Session ssn = getSession();
beginTransaction();
Query q = ssn.createQuery(hql);
for (int i = 0; args != null && i < args.length - 1; i++) {
q.setParameter(i, args[i]);
}
int er = q.executeUpdate();
commit();
return er;
} catch (HibernateException e) {
rollback();
throw e;
}
}
protected static int commitUpdate(String hql, int parm1, int parm2) {
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -