package com.dao;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.pojo.Powers;
import com.pojo.Role;
import com.pojo.User;
import com.sf.HibernateSessionFactory;
public class Udao {
Session session;
public User findBykey(String name,String pwd)
{ session=HibernateSessionFactory.getSession();
User user=null;
String hql = "FROM User AS p WHERE p.uname=? AND p.upassword=?";
Query q = session.createQuery(hql);
q.setString(0, name);
q.setString(1, pwd);
user=(User) q.uniqueResult();
return user;
}
public void closeSession() {// 释放资源
if (session != null) {
session.close();
session = null;
}
}
//获取角色
public List getrole(String name,String pwd){
session=HibernateSessionFactory.getSession();
List l = null ;
Role course = null;
ArrayList list=new ArrayList();
try{
User user=findBykey(name,pwd);
int id=user.getUid();
Query q=session.createQuery("from User as u where u.uid="+id+"");
l=q.list();
for (int i=0;i<l.size();i++) {
user=(User)l.get(i);
Iterator it = user.getRole().iterator();
while(it.hasNext())
{
course = (Role)it.next();
// System.out.println(course.getRid());
list.add(course.getRid());
}
}
}
catch(HibernateException ex){
ex.printStackTrace();
}
return list;
}
//获取权限
public List getPower(int rid){
session=HibernateSessionFactory.getSession();
List l = null ;
Powers p=null;
Role role=null;
ArrayList list1=new ArrayList();
try{
Query q=session.createQuery("from Role as r where r.rid="+rid+"");
l=q.list();
for (int i=0;i<l.size();i++) {
role=(Role)l.get(i);
Iterator it = role.getPowers().iterator();
while(it.hasNext())
{
p= (Powers)it.next();
list1.add(p);
}
}
}
catch(HibernateException ex){
ex.printStackTrace();
}
return list1;
}
public List getroles(int uid){
session=HibernateSessionFactory.getSession();
List l1 = null ;
User u=null;
Role role=null;
ArrayList list2=new ArrayList();
try{
Query q=session.createQuery("from User as u where u.uid="+uid+"");
l1=q.list();
for (int i=0;i<l1.size();i++) {
u=(User)l1.get(i);
Iterator it =u.getRole().iterator();
while(it.hasNext())
{
role= (Role)it.next();
//System.out.println(p.getQname());
// int dd=role.getRid();
//String ss=role.getRname();
//lists.add(dd);
list2.add(role);
}
}
}
catch(HibernateException ex){
ex.printStackTrace();
}
return list2;
}
//查询所有用户
public List getAll() {
session=HibernateSessionFactory.getSession();
Query query = session.createQuery("from User");
List list3 = query.list();
return list3;
}
//根据ID取用户
public User findByid(int id)
{ session=HibernateSessionFactory.getSession();
User user=null;
String hql = "FROM User AS p WHERE p.uid=?";
Query q = session.createQuery(hql);
q.setInteger(0, id);
user=(User) q.uniqueResult();
return user;
}
//获取所有角色
public List getAllRole(int rid) {
session=HibernateSessionFactory.getSession();
Query query = session.createQuery("from Role as r,User as u where u.uid=r.rid and r.rid=?");
query.setInteger(0,rid);
List list4 = query.list();
return list4;
}
//根据ID获取角色
public Role getbyid(int rid){
session=HibernateSessionFactory.getSession();
Role role=null;
String hql = "FROM Role AS p WHERE p.rid=?";
Query q = session.createQuery(hql);
q.setInteger(0, rid);
role=(Role) q.uniqueResult();
return role;
}
//根据ID获取权限
public Powers getbyqid(int qid){
session=HibernateSessionFactory.getSession();
Powers power=null;
String hql = "FROM Powers AS p WHERE p.qid=?";
Query q = session.createQuery(hql);
q.setInteger(0, qid);
power=(Powers) q.uniqueResult();
return power;
}
//添加角色
public void addrole(int uid,int rid){
session=HibernateSessionFactory.getSession();
User u=findByid(uid);
Role r=getbyid(rid);
r.setRname(r.getRname());
u.getRole().add(r);
r.getUser().add(u);
session.update(u);
session.beginTransaction().commit();
}
//添加权限
public void addpower(int rid,int qid){
session=HibernateSessionFactory.getSession();
Role r=getbyid(rid);
Powers p=getbyqid(qid);
r.setRname(r.getRname());
p.getRole().add(r);
r.getPowers().add(p);
session.update(r);
session.beginTransaction().commit();
}
//取消角色
public void deleterole(int uid,int rid){
session=HibernateSessionFactory.getSession();
User u=findByid(uid);
Role r=getbyid(rid);
r.setRname(r.getRname());
u.getRole().remove(r);
r.getUser().remove(u);
session.beginTransaction().commit();
}
//取消权限
public void deletepower(int rid,int qid){
session=HibernateSessionFactory.getSession();
Role r=getbyid(rid);
Powers p=getbyqid(qid);
r.getPowers().remove(p);
p.getRole().remove(r);
session.beginTransaction().commit();
}
//删除用户
public void deleteuser(int uid,int rid){
session=HibernateSessionFactory.getSession();
User u=findByid(uid);
Role r=getbyid(rid);
u.getRole().remove(r);
r.getUser().remove(u);
session.delete(u);
session.beginTransaction().commit();
}
//模糊查询
public List getOneByName(String name) {
session=HibernateSessionFactory.getSession();
Query query = session.createQuery("from User p where p.uname like ?");
query.setString(0, "%"+name+"%");
List list5 = query.list();
return list5;
}
//分页
public List<User> findPagedAll(int currentPage, int pageSize)
{String hql = "from User u";
Query query = session.createQuery(hql);
currentPage = (currentPage - 1) * pageSize;
query.setFirstResult(currentPage);
query.setMaxResults(pageSize);
List<User> list6 = query.list();
return list6;
}
}
评论1
最新资源