📄 postsdaoimpl.java
字号:
public boolean deletePostsIDArray(List deleteList) {
StringBuffer updateThreadsSQL = new StringBuffer(
"update Threads as t set t.displayorder=-1,t.moderated=1 where t.tid in (select p.tid from Posts as p where p.pid in (");
StringBuffer updatePostsSQL = new StringBuffer(
"update Posts as p set p.invisible=-1 where p.pid in (");
for (int i = 0; i < deleteList.size(); i++) {
updateThreadsSQL.append(deleteList.get(i) + ",");
updatePostsSQL.append(deleteList.get(i) + ",");
}
String updateThreadssql = updateThreadsSQL.substring(0,
updateThreadsSQL.length() - 1);
updateThreadssql = updateThreadssql + "))";
String strsql = updatePostsSQL
.substring(0, updatePostsSQL.length() - 1);
strsql = strsql + ")";
try {
updateSQL(updateThreadssql);
updateSQL(strsql);
} catch (Exception e) {
return false;
}
return true;
}
public boolean ignorePostsIDArray(List ignoreList) {
StringBuffer updateThreadsSQL = new StringBuffer(
"update Threads as t set t.displayorder=-3,t.moderated=0 where t.tid in (select p.tid from Posts as p where p.pid in (");
StringBuffer updatePostsSQL = new StringBuffer(
"update Posts as p set p.invisible=-2 where p.pid in (");
for (int i = 0; i < ignoreList.size(); i++) {
updateThreadsSQL.append(ignoreList.get(i) + ",");
updatePostsSQL.append(ignoreList.get(i) + ",");
}
String updateThreadssql = updateThreadsSQL.substring(0,
updateThreadsSQL.length() - 1);
updateThreadssql = updateThreadssql + "))";
String strsql = updatePostsSQL
.substring(0, updatePostsSQL.length() - 1);
strsql = strsql + ")";
try {
updateSQL(updateThreadssql);
updateSQL(strsql);
} catch (Exception e) {
return false;
}
return true;
}
public Posts findByTid(Integer tid) {
Posts p = null;
Transaction tr = null;
try {
Session session = HibernateUtil.getSessionFactory().openSession();
tr = session.beginTransaction();
Query query = session.createQuery("from Posts as p where p.tid = " + tid
+ " and p.first =1 ");
List<Posts> postsList = query.list();
tr.commit();
if(postsList.size()>0){
p = postsList.get(0);
}
} catch (HibernateException he) {
if(tr!=null){
tr.rollback();
}
he.printStackTrace();
}
return p;
}
public Posts findPostByThreadId(int tid) {
Transaction tr = null;
try {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
tr = session.beginTransaction();
Query query = session.createQuery("from Posts as p where p.tid=? and first = 1");
query.setParameter(0, tid);
List<Posts> list = query.list();
tr.commit();
if(list!=null && list.size()>0){
return list.get(0);
}
} catch (Exception e) {
e.printStackTrace();
if(tr!= null){
tr.rollback();
}
}
return null;
}
public int findPostCount() {
Transaction tr = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
tr = session.beginTransaction();
Query query = session.createQuery("select count(*) from Posts");
List list = query.list();
tr.commit();
if(list!=null && list.size()>0){
return Integer.valueOf(list.get(0)+"");
}
}catch(Exception e){
if(tr!=null){
tr.rollback();
}
e.printStackTrace();
}
return 0;
}
public int findPostCountByHql(String hql) {
Session session = null;
Transaction tran = null;
Query query = null;
try {
session = HibernateUtil.getSessionFactory().getCurrentSession();
tran = session.beginTransaction();
query = session.createQuery(hql);
List list = query.list();
tran.commit();
if(list!=null && list.size()>0){
return (Integer)list.get(0);
}
} catch (HibernateException e) {
if(tran!=null){
tran.rollback();
}
e.printStackTrace();
}
return 0;
}
public List<Posts> getPostsListByPidList(List<Integer> pidList) {
Transaction tr = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
tr = session.beginTransaction();
List<Posts> list = new ArrayList<Posts>();
for(int i = 0;i<pidList.size();i++){
list.add((Posts)session.get(Posts.class, pidList.get(i)));
}
tr.commit();
return list;
}catch(Exception e){
if(tr!=null){
tr.rollback();
}
e.printStackTrace();
}
return null;
}
public Map<String,String> getBestmemAndBestmemposts(Integer nowTime){
Transaction tr = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
tr = session.beginTransaction();
String hql = "SELECT author,COUNT(*) FROM Posts WHERE dateline>=? AND invisible=0 AND authorid>0 GROUP BY author";
Query query = session.createQuery(hql);
query.setInteger(0, nowTime);
List list = query.list();
tr.commit();
Iterator iterator = list.iterator();
Integer count = 0;
String author = null;
while(iterator.hasNext()){
Object[] objects = (Object[])iterator.next();
String authorTemp = objects[0].toString();
Integer countTemp = (Integer)objects[1];
if(countTemp>count){
count = countTemp;
author = authorTemp;
}
}
Map<String,String> map = new HashMap<String, String>();
if(count!=0){
map.put("bestmem", author);
}else{
map.put("bestmem", "None");
}
map.put("bestmemposts", count.toString());
return map;
}catch(Exception exception){
if(tr!=null){
tr.rollback();
}
exception.printStackTrace();
return null;
}
}
public Map<String,String> getPostsAndRuntime(){
Transaction tr = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
tr = session.beginTransaction();
String hql = "SELECT COUNT(*), (MAX(dateline)-MIN(dateline))/86400 FROM Posts";
Query query = session.createQuery(hql);
List list = query.list();
tr.commit();
Iterator iterator = list.iterator();
while(iterator.hasNext()){
Object[] objects = (Object[])iterator.next();
Map<String,String> map = new HashMap<String, String>();
map.put("posts", objects[0].toString());
map.put("runtime", (objects[1]==null||(Integer)objects[1]<1)?"1":objects[1].toString());
return map;
}
}catch(Exception exception){
if(tr!=null){
tr.rollback();
}
exception.printStackTrace();
}
return null;
}
public Integer getPostsaddtoday(){
Transaction tr = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
tr = session.beginTransaction();
String hql = "SELECT COUNT(*) FROM Posts WHERE dateline>=? AND invisible=?";
Query query = session.createQuery(hql);
Integer nowTime = Integer.valueOf((Calendar.getInstance().getTimeInMillis()+"").substring(0, 10));
query.setInteger(0, nowTime-86400);
query.setByte(1, (byte)0);
List list = query.list();
tr.commit();
return (Integer)list.get(0);
}catch(Exception exception){
if(tr!=null){
tr.rollback();
}
exception.printStackTrace();
}
return null;
}
public List<Posts> findPostByhql(String hql, int start, int max) {
Session session = null;
Transaction trs = null;
try{
session = HibernateUtil.getSessionFactory().getCurrentSession();
trs = session.beginTransaction();
Query query = session.createQuery(hql);
query.setFirstResult(start);
query.setMaxResults(max);
List<Posts> postlist = query.list();
trs.commit();
return postlist;
}catch(HibernateException e){
if(trs!=null){
trs.rollback();
}
e.printStackTrace();
}
return null;
}
public boolean updatePosts(Posts post) {
Transaction tr = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
tr = session.beginTransaction();
session.update(post);
tr.commit();
return true;
}catch(HibernateException e){
if(tr!=null){
tr.rollback();
}
e.printStackTrace();
}
return false;
}
public int saveOrupdatePosts(Posts post) {
Transaction tr = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
tr = session.beginTransaction();
session.saveOrUpdate(post);
tr.commit();
return post.getPid();
}catch(HibernateException e){
if(tr!=null){
tr.rollback();
}
e.printStackTrace();
}
return 0;
}
public List<Posts> getPostsListByTid(Integer tid) {
Transaction transaction = null;
try {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();
String hql = "FROM Posts as p WHERE p.tid=?";
Query query = session.createQuery(hql);
query.setInteger(0, tid);
List<Posts> postsList = query.list();
transaction.commit();
return postsList;
} catch (Exception exception) {
exception.printStackTrace();
if (transaction != null) {
transaction.rollback();
}
}
return null;
}
public void deletePosts(List<Integer> pidList) {
Transaction transaction = null;
try {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();
for(int i = 0;i<pidList.size();i++){
session.delete(session.get(Posts.class, pidList.get(i)));
}
} catch (Exception exception) {
exception.printStackTrace();
if (transaction != null) {
transaction.rollback();
}
}
}
public Posts getLastPosts(Integer tid) {
Transaction transaction = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();
String hql = "FROM Posts as p WHERE p.tid=? AND p.invisible=0 ORDER BY p.dateline DESC";
Query query = session.createQuery(hql);
query.setInteger(0, tid);
query.setMaxResults(1);
List<Posts> postsList = query.list();
transaction.commit();
if(postsList.size()>0){
return postsList.get(0);
}else{
return null;
}
}catch(Exception exception){
exception.printStackTrace();
if(transaction!=null){
transaction.rollback();
}
return null;
}
}
public Posts getLastPosts(Short fid) {
Transaction transaction = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();
String hql = "FROM Posts as p WHERE p.fid=? AND p.invisible=0 ORDER BY p.dateline DESC";
Query query = session.createQuery(hql);
query.setShort(0, fid);
query.setMaxResults(1);
List<Posts> postsList = query.list();
transaction.commit();
if(postsList.size()>0){
return postsList.get(0);
}else{
return null;
}
}catch(Exception exception){
exception.printStackTrace();
if(transaction!=null){
transaction.rollback();
}
return null;
}
}
public Posts getFirstPosts(Integer tid) {
Transaction transaction = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();
String hql = "FROM Posts as p WHERE p.tid=? AND p.invisible=0 ORDER BY p.dateline ASC LIMIT 1";
Query query = session.createQuery(hql);
query.setInteger(0, tid);
List<Posts> postsList = query.list();
transaction.commit();
if(postsList.size()>0){
return postsList.get(0);
}else{
return null;
}
}catch(Exception exception){
exception.printStackTrace();
if(transaction!=null){
transaction.rollback();
}
return null;
}
}
public void updatePosts(List<Posts> postsList) {
Transaction transaction = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();
for(int i = 0;i<postsList.size();i++){
session.update(postsList.get(i));
}
transaction.commit();
}catch(Exception exception){
exception.printStackTrace();
if(transaction!=null){
transaction.rollback();
}
}
}
public Integer getCountOfReplyForTopic(Integer topicId) {
Transaction transaction = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();
String hql = "SELECT COUNT(*) FROM Posts AS p WHERE p.tid=? AND invisible=0";
Query query = session.createQuery(hql);
query.setInteger(0, topicId);
List<Integer> list = query.list();
transaction.commit();
if(list!=null){
return list.get(0)-1;
}else{
throw new Exception("查询结果为 NULL");
}
}catch(Exception exception){
exception.printStackTrace();
if(transaction!=null){
transaction.rollback();
}
return null;
}
}
public void updatePostsByHQL(String hql) {
Transaction transaction = null;
try{
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
transaction = session.beginTransaction();
Query query = session.createQuery(hql);
query.executeUpdate();
transaction.commit();
}catch(Exception exception){
if(transaction!=null){
transaction.rollback();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -