📄 loginuserdaoimpl.java
字号:
/**
* FileName:LoginUserDaoImpl.java,v 1.0 created in 2008-11-7 下午12:00:56
* Created by lv
* Copyright (c) 2008 华东交通大学
* All Rights Reserved.
*/
package cn.jx.ecjtu.oa.ps.dao.impl;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import com.wanczy.dbutil.IResultSetHandler;
import cn.jx.ecjtu.oa.ps.dao.BaseDao;
import cn.jx.ecjtu.oa.ps.dao.LoginUserDao;
import cn.jx.ecjtu.oa.ps.pojo.LoginUser;
import cn.jx.ecjtu.oa.ps.pojo.Permission;
import cn.jx.ecjtu.oa.ps.pojo.Role;
/**
* @todo:Description
* @author lv
* @version $Revision: 1.31 $
* @since 1.0
*/
public class LoginUserDaoImpl extends BaseDao implements LoginUserDao {
class ResultSet2LoginUser implements IResultSetHandler {//把结果集转化为LoginUser对象
public Object handle(ResultSet rs) throws SQLException {
return new LoginUser(
rs.getInt("id"),
rs.getString("login_name"),
rs.getString("real_name"),
rs.getString("password"),
rs.getInt("dept_id"),
rs.getInt("role_id"),
rs.getLong("online_time")
);
}
}
class ResultSet2Role implements IResultSetHandler {//把结果集转化为Role对象
public Object handle(ResultSet rs) throws SQLException {
return new Role(rs.getInt("role_id"),
rs.getString("name"));
}
}
class ResultSet2Permission implements IResultSetHandler {//把结果集转化为Permission对象
public Object handle(ResultSet rs) throws SQLException {
return new Permission(rs.getInt("id"),
rs.getString("name"),rs.getString("resource"));
}
}
//声明一个ResultSet2LoginUser
private ResultSet2LoginUser resultSet2LoginUser= new ResultSet2LoginUser();
private ResultSet2Role rsRole = new ResultSet2Role();
private ResultSet2Permission rsPermission = new ResultSet2Permission();
/***
* 根据loginName查找一个登陆用户信息
* @return 一个登陆用户对象
* @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao#findByLoginName(java.lang.String)
*/
public LoginUser findByLoginName(final String loginName) {
String sql="select * from oa_login_user where login_name=?";
List list=dbAccess.executeQuery(sql,
new Object[]{loginName},
resultSet2LoginUser);
if(list.size()>0)
return (LoginUser)list.get(0);
else
return null;
}
/***
* 根据id查找一个登陆用户信息
* @return 一个登陆用户对象
* @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao#findById(int)
*/
public LoginUser findById(int id) {
String sql="select * from oa_login_user where id=?";
List list=dbAccess.executeQuery(sql,
new Object[]{id},
resultSet2LoginUser);
if(list.size()>0)
return (LoginUser)list.get(0);
else
return null;
}
/***
* 修改一个用户的在线时长
* @return 一个登陆用户对象
* @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao
*/
public int updateOnlineTime(LoginUser loginUser) {
String sql="update oa_login_user set online_time=? where id=?";
return dbAccess.executeUpdate(sql,new Object[]{loginUser.getOnlineTime(),loginUser.getId()});
}
/**方法功能:查询数据库中前n位用户
* created by sunyi
*/
public List<LoginUser> findTopUsers(int n) {
String sql = "select top "+ n + " * from oa_login_user order by online_time desc";
return dbAccess.executeQuery(sql,resultSet2LoginUser);
}
/**方法功能:根据部门id查找属于此部门的人员
*/
public List<LoginUser> findUserByDeptId(int deptId) {
List list=dbAccess.executeQuery("select * from oa_login_user where dept_id=?",
new Object[]{new Integer(deptId)},
resultSet2LoginUser);
return list;
}
/**方法功能:根据用户id删除用户
*/
public int removeUser(int id) {
return dbAccess.executeUpdate("delete from oa_login_user where id=?",
new Object[]{new Integer(id)});
}
/**方法功能:根据login对象将数据保存进oa_login_user表
*/
public int addUser(LoginUser loginUser) {
return dbAccess.executeUpdate(
"Insert into oa_login_user(login_name,real_name,password,dept_id,role_id,online_time) values (?,?,?,?,?,0)",
new Object[]{loginUser.getLoginName(),
loginUser.getRealName(),
loginUser.getLoginName(),//用户的初始密码设置和登录名一样
loginUser.getDeptID(),
loginUser.getRoleId()
}
);
}
/**方法功能:查询出所有角色列表
* 输入参数:
* 输出参数:
*/
public List<Role> findAllRole() {
// TODO Auto-generated method stub
List list=dbAccess.executeQuery("select * from oa_role",
rsRole);
return list;
}
/**给角色分配权限
* created by lv
*/
public int addPermissionToRole(int roleId, List<Integer>permissionIds) {
String sql = "insert into oa_permission_map(role_id,permission_id) values("+roleId+",?)";
//return dbAccess.executeUpdate(sql);
Object params[][] = new Object[permissionIds.size()][1];
for (int i = 0; i < params.length; i++) {
params[i][0]= permissionIds.get(i);
}
return dbAccess.executeBatch(sql, params);
}
/**
* 根据一组用户id查询用户
*/
public List<LoginUser> findByIds(List<Integer> ids) {
String sql="select * from oa_login_user where id in(0";
for(int i=0;i<ids.size();i++){
sql=sql+","+ids.get(i);
}
sql=sql+")";
return dbAccess.executeQuery(sql, resultSet2LoginUser);
}
public List<Permission> findPermissionIdByRoleId(int roleId) {
return dbAccess.executeQuery("select t2.* from oa_permission_map t1 left join oa_permission t2 on t1.permission_id=t2.id where t1.role_id="+roleId, rsPermission);
}
/**根据给定的一组id查找对应的一组权限
* created by lv
*/
public List<Permission> findPermissionsByIds(List<Integer> ids) {
String sql = "select * from oa_permission where id in(0";
for(int i = 0 ;i<ids.size();i++){
sql+=","+ids.get(i);
}
sql+=")";
return dbAccess.executeQuery(sql, rsPermission);
}
/**清空用户密码
* created by yfjie
*/
public int setPwdNull(int id) {
String sql = "update oa_login_user set password ='"+"'"+" where id="+id;
return dbAccess.executeUpdate(sql);
}
/**
* 修改用户信息
*/
public int updateUser(LoginUser loginUser) {
return dbAccess.executeUpdate("update oa_login_user set login_name=?,real_name=?," +
"password=?,dept_id=?,role_id=? where id=?",
new Object[]{loginUser.getLoginName(),
loginUser.getRealName(),
loginUser.getPassWord(),
loginUser.getDeptID(),
loginUser.getRoleId(),
loginUser.getId()}
);
}
/**
* 方法功能:查询出所有权限列表
*/
public List<Permission> findAllPermissions() {
List list=dbAccess.executeQuery("select * from oa_permission",
rsPermission);
return list;
}
/**
* 添加指定了目录的权限
*/
public int addPermission(Permission permission) {
String sql = "insert into oa_permission(name,resource) values('"+permission.getName()+"','"+permission.getResource()+"')";
return dbAccess.executeUpdate(sql);
}
/**
* 添加新角色
*/
public int addRole(String name) {
String sql = "insert into oa_role(name) values('"+name+"')";
return dbAccess.executeUpdate(sql);
}
/**
* 用户更新自己的密码
*/
public int updatePassword(int id, String password) {
String sql = "update oa_login_user set password = ? where id = ?";
Object []params = new Object[]{password,id};
return dbAccess.executeUpdate(sql, params);
}
/**
* 根据角色id查询角色
*/
public Role findRole(int roleid){
String sql="select * from oa_role where role_id=?";
List list=dbAccess.executeQuery(sql,
new Object[]{roleid},
rsRole);
if(list.size()>0)
return (Role)list.get(0);
else
return null;
}
public List<LoginUser> findAllUser(){
String sql = "select * from oa_login_user";
return dbAccess.executeQuery(sql, resultSet2LoginUser);
}
public int deletePermission(int permissionId) {
String sql = "delete from oa_permission where id="+permissionId;
return dbAccess.executeUpdate(sql);
}
public int deleteRole(int roleId) {
String sql = "delete from oa_role where role_id="+roleId;
return dbAccess.executeUpdate(sql);
}
/* (non-Javadoc)
* @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao#deletePermissionFromRole(int, java.util.List)
*/
public int deletePermissionFromRole(int roleId) {
String sql = "delete from oa_permission_map where role_id="+roleId;
return dbAccess.executeUpdate(sql);
}
/* (non-Javadoc)
* @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao#updateRole(int)
*/
public int updateRole(int roleId) {
String sql = "update oa_login_user set role_id=0 where role_id="+roleId;
return dbAccess.executeUpdate(sql);
}
/* (non-Javadoc)
* @see cn.jx.ecjtu.oa.ps.dao.LoginUserDao#delete_permission_map(int)
*/
public int delete_permission_map(int permissionId) {
String sql = "delete from oa_permission_map where permission_id="+permissionId;
return dbAccess.executeUpdate(sql);
}
/**
* 测试用
*//*
public Object getNum(String sql){
return dbAccess.getSingleValue(sql);
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -