MyBatis人事管理系统用户DAO

一 UserDao

package org.fkit.hrm.dao;


import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.fkit.hrm.dao.provider.UserDynaSqlProvider;
import org.fkit.hrm.domain.User;
import static org.fkit.hrm.util.common.HrmConstants.USERTABLE;

public interface UserDao {

    // 根据登录名和密码查询员工
    @Select("select * from "+USERTABLE+" where loginname = #{loginname} and password = #{password}")
    User selectByLoginnameAndPassword(
            @Param("loginname") String loginname,
            @Param("password") String password);
    
    // 根据id查询用户
    @Select("select * from "+USERTABLE+" where ID = #{id}")
    User selectById(Integer id);
    
    // 根据id删除用户
    @Delete(" delete from "+USERTABLE+" where id = #{id} ")
    void deleteById(Integer id);
        
    // 动态修改用户
    @SelectProvider(type=UserDynaSqlProvider.class,method="updateUser")
    void update(User user);
        
    // 动态查询
    @SelectProvider(type=UserDynaSqlProvider.class,method="selectWhitParam")
    List<User> selectByPage(Map<String, Object> params);
    
    // 根据参数查询用户总数
    @SelectProvider(type=UserDynaSqlProvider.class,method="count")
    Integer count(Map<String, Object> params);
    
    // 动态插入用户
    @SelectProvider(type=UserDynaSqlProvider.class,method="insertUser")
    void save(User user);
    
}

二 UserDynaSqlProvider

package org.fkit.hrm.dao.provider;

import java.util.Map;
import org.apache.ibatis.jdbc.SQL;
import org.fkit.hrm.domain.User;
import static org.fkit.hrm.util.common.HrmConstants.USERTABLE;

public class UserDynaSqlProvider {
    // 分页动态查询
    public String selectWhitParam(Map<String, Object> params){
        String sql =  new SQL(){
            {
                SELECT("*");
                FROM(USERTABLE);
                if(params.get("user") != null){
                    User user = (User)params.get("user");
                    if(user.getUsername() != null && !user.getUsername().equals("")){
                        WHERE("  username LIKE CONCAT ('%',#{user.username},'%') ");
                    }
                    if(user.getUserstatus() != null && !user.getUserstatus().equals("")){
                        WHERE(" userstatus LIKE CONCAT ('%',#{user.userstatus},'%') ");
                    }
                }
            }
        }.toString();
        
        if(params.get("pageModel") != null){
            sql += " limit #{pageModel.firstLimitParam} , #{pageModel.pageSize}  ";
        }
        
        return sql;
    }    
    // 动态查询总数量
    public String count(Map<String, Object> params){
        return new SQL(){
            {
                SELECT("count(*)");
                FROM(USERTABLE);
                if(params.get("user") != null){
                    User user = (User)params.get("user");
                    if(user.getUsername() != null && !user.getUsername().equals("")){
                        WHERE(" username LIKE CONCAT ('%',#{user.username},'%') ");
                    }
                    if(user.getUserstatus() != null && !user.getUserstatus().equals("")){
                        WHERE(" userstatus LIKE CONCAT ('%',#{user.userstatus},'%') ");
                    }
                }
            }
        }.toString();
    }    
    
    // 动态插入
    public String insertUser(User user){
        return new SQL(){
            {
                INSERT_INTO(USERTABLE);
                if(user.getUsername() != null && !user.getUsername().equals("")){
                    VALUES("username", "#{username}");
                }
                if(user.getUserstatus() != null && !user.getUserstatus().equals("")){
                    VALUES("userstatus", "#{userstatus}");
                }
                if(user.getLoginname() != null && !user.getLoginname().equals("")){
                    VALUES("loginname", "#{loginname}");
                }
                if(user.getPassword() != null && !user.getPassword().equals("")){
                    VALUES("password", "#{password}");
                }
            }
        }.toString();
    }
    // 动态更新
        public String updateUser(User user){
            
            return new SQL(){
                {
                    UPDATE(USERTABLE);
                    if(user.getUsername() != null){
                        SET(" username = #{username} ");
                    }
                    if(user.getLoginname() != null){
                        SET(" loginname = #{loginname} ");
                    }
                    if(user.getPassword()!= null){
                        SET(" password = #{password} ");
                    }
                    if(user.getUserstatus()!= null){
                        SET(" userstatus = #{userstatus} ");
                    }
                    if(user.getCreateDate()!= null){
                        SET(" create_date = #{createDate} ");
                    }
                    WHERE(" id = #{id} ");
                }
            }.toString();
        }
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值