📄 userdao.java
字号:
package com.olr.dao;
import java.util.ArrayList;
import java.util.List;
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.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.olr.beans.Book;
import com.olr.beans.Message;
import com.olr.beans.User;
import com.olr.util.Pager;
/**
* A data access object (DAO) providing persistence and search support for User
* entities. Transaction control of the save(), update() and delete() operations
* can directly support Spring container-managed transactions or they can be
* augmented to handle user-managed Spring transactions. Each of these methods
* provides additional information for how to configure it for the desired type
* of transaction control.
*
* @see com.olr.beans.User
* @author MyEclipse Persistence Tools
*/
public class UserDAO extends HibernateDaoSupport implements IUserDAO{
Logger log = Logger.getLogger(this.getClass());
public void deleteUser(int userId) {
Object p = getHibernateTemplate().load(User.class, new Integer(userId));
this.getHibernateTemplate().delete(p);
}
public List<User> getTopNewUsers(int topNum){
Session session=this.getHibernateTemplate().getSessionFactory().openSession();
Criteria criteria=session.createCriteria(User.class);
criteria.addOrder(Order.desc("userId"));
criteria.setMaxResults(topNum);
List<User> result=criteria.list();
return result;
}
public Pager getAllUsers(int pageNo, int pageSize) {
Session session=this.getHibernateTemplate().getSessionFactory().openSession();
Criteria criteria=session.createCriteria(User.class);
int rowCount=((Integer)criteria.setProjection(
Projections.rowCount()).uniqueResult()).intValue();
criteria.setProjection(null);
int startIndex=pageSize*(pageNo-1);
criteria.addOrder(Order.asc("userId"));
criteria.setFirstResult(startIndex);
criteria.setMaxResults(pageSize);
List result=criteria.list();
session.close();
pageSize=Math.min(pageSize, result.size());
return new Pager(pageSize,pageNo,rowCount,result);
}
public Pager getBookShelfPager(int userId, int pageNo, int pageSize) {
User user=this.getUserById(userId);
Set<Book> bookshelf=user.getMyBooks();
List<Book> bookshelfList=new ArrayList<Book>();
bookshelfList.addAll(bookshelf);
int startIndex=pageSize*(pageNo-1);
List<Book> pageList=null;
//pageSize=Math.min(pageSize, bookshelfList.size());
if(pageSize+startIndex>bookshelfList.size()){
pageList=bookshelfList.subList(startIndex,bookshelfList.size());
}else{
pageList=bookshelfList.subList(startIndex,pageSize);
}
return new Pager(pageSize,pageNo,bookshelfList.size(),pageList);
}
public List<Book> getTopBookshelf(int userId, int topNum) {
User user=this.getUserById(userId);
Set<Book> bookshelf=user.getMyBooks();
List<Book> bookshelfList=new ArrayList<Book>();
bookshelfList.addAll(bookshelf);
topNum=Math.min(topNum, bookshelfList.size());
bookshelfList=bookshelfList.subList(0, topNum);
return bookshelfList;
}
public User getUserById(int userId) {
return (User) this.getHibernateTemplate().get(User.class,new Integer(userId));
}
public User getUserByName(String username) {
Session session=this.getHibernateTemplate().getSessionFactory().openSession();
Criteria criteria=session.createCriteria(User.class);
criteria.add(Restrictions.eq("username", username));
List<User> result=criteria.list();
session.close();
return result.get(0);
}
public void insertUser(User user) {
Session session=null;
Transaction tx=null;
try{
session=this.getSessionFactory().openSession();
tx=session.beginTransaction();
session.save(user);
tx.commit();
session.close();
}catch(Exception e){
logger.error(this.getClass().getName()+"insertUser error!");
}
}
public boolean isExistInShelf(int userId,int bookId){
Session session=null;
Transaction tx=null;
session=this.getSessionFactory().openSession();
tx=session.beginTransaction();
String hql = "FROM Bookshelf Where userId=? and bookId=?";
Query q = session.createQuery(hql) ;
q.setInteger(0, userId);
q.setInteger(1, bookId);
List result=q.list();
tx.commit();
session.close();
if(result.size()>0){
return true;
}else{
return false;
}
}
public void removeFormShelf(int userId,int bookId){
Session session=null;
Transaction tx=null;
session=this.getSessionFactory().openSession();
tx=session.beginTransaction();
String hql = "Delete FROM Bookshelf bookshelf Where bookshelf.userId=? and bookshelf.bookId=?";
Query q = session.createQuery(hql) ;
q.setInteger(0, userId);
q.setInteger(1, bookId);
q.executeUpdate() ;
tx.commit();
session.close();
}
public boolean isExist(final String username) {
List list = (List) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
List result = session.createCriteria(User.class).add(
Restrictions.eq("username", username)).list();
return result;
}
});
if (list.size() > 0) {
return true;
} else {
return false;
}
}
public boolean isValid(final String username,final String password,final int power) {
List list = (List) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
List result = session.createCriteria(User.class).add(
Restrictions.eq("username", username)).add(
Restrictions.eq("password", password)).add(
Restrictions.eq("power",power)).list();
return result;
}
});
if (list.size() > 0) {
return true;
} else {
return false;
}
}
public void updateUser(User user) {
this.getHibernateTemplate().update(user);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -