`
jieAmei
  • 浏览: 29484 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

daoimpl

 
阅读更多
package com.launch.yqyc.dao.impl;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer;
import org.springframework.stereotype.Repository;

import com.launch.core.dao.impl.BaseDaoImpl;
import com.launch.core.util.PagingHelper;
import com.launch.yqyc.Constants;
import com.launch.yqyc.dao.SysUserDao;
import com.launch.yqyc.model.SysUser;

/**
* <p>
* SysUserDaoImpl
* </p>
* <p>
* 实现系统用户的CRUD操作的DAO接口方法
* </p>
* @author zhanghongbo
* @since 1.0
* @version $Id: SysUserDaoImpl.java 2012-7-20 17:51:22 $
*/
@Repository("sysUserDao")
public class SysUserDaoImpl extends BaseDaoImpl<SysUser, String> implements SysUserDao
{
    @Autowired
    private OracleSequenceMaxValueIncrementer seqVideoSystemIdGenerator;

    /**
     * 默认构造器
     */
    public SysUserDaoImpl()
    {
    }

    /**
     * 根据用户名、用户类型分页查询匹配的用户列表
     * @param page 分页对象
     * @param sysUser 用户对象
     * @return
     */
    public PagingHelper findPage(PagingHelper page, SysUser sysUser)
    {
        Criterion criterion = null;
        List<Criterion> criterionList = new ArrayList<Criterion>();
        if (sysUser != null)
        {
            // 模糊匹配序列号
            if(StringUtils.isNotBlank(sysUser.getSerialNo())){
                criterion = Restrictions.like("serialNo", StringUtils.trim(sysUser.getSerialNo()), MatchMode.ANYWHERE);
                criterionList.add(criterion);
            }
            // 模糊匹配用户名
            if (StringUtils.isNotBlank(sysUser.getUserName()))
            {
                criterion = Restrictions.like("userName", StringUtils.trim(sysUser.getUserName()), MatchMode.ANYWHERE);
                criterionList.add(criterion);
            }
            // 用户类型
            if (sysUser.getUserType() != null)
            {
                if (sysUser.getUserType() == Constants.USER_TYPE_COMMON)
                {
                    criterion = Restrictions.le("userType", Constants.USER_TYPE_EXPERT); // 普通用户列表
                }
                else
                {
                    criterion = Restrictions.eq("userType", sysUser.getUserType());
                }
                criterionList.add(criterion);
            }
            // 精确匹配用户状态
            if (sysUser.getStatus() != null)
            {
                criterion = Restrictions.eq("status", sysUser.getStatus());
                criterionList.add(criterion);
            }
        }

        Criterion[] criterions = criterionList.toArray(new Criterion[criterionList.size()]);
        page = findPage(page, criterions);
        return page;
    }

    /**
     * 获取用户列表
     * @param sysUser 用户对象
     * @return
     */
    @SuppressWarnings("unchecked")
    @Override
    public List<SysUser> findSysUserList(SysUser sysUser)
    {
        Criterion criterion = null;
        List<Criterion> criterionList = new ArrayList<Criterion>();
        if (sysUser != null)
        {
            // 模糊匹配用户名
            if (StringUtils.isNotBlank(sysUser.getUserName()))
            {
                criterion = Restrictions.like("userName", StringUtils.trim(sysUser.getUserName()), MatchMode.ANYWHERE);
                criterionList.add(criterion);
            }
            // 用户类型
            if (sysUser.getUserType() != null)
            {
                if (sysUser.getUserType() == Constants.USER_TYPE_COMMON)
                {
                    criterion = Restrictions.le("userType", Constants.USER_TYPE_EXPERT); // 普通用户列表
                }
                else
                {
                    criterion = Restrictions.eq("userType", sysUser.getUserType());
                }
                criterionList.add(criterion);
            }
            // 精确匹配用户状态
            if (sysUser.getStatus() != null)
            {
                criterion = Restrictions.eq("status", sysUser.getStatus());
                criterionList.add(criterion);
            }
        }

        Criterion[] criterions = criterionList.toArray(new Criterion[criterionList.size()]);
        Criteria criteria = createCriteria(criterions);

        return criteria.list();
    }

    /**
     * 根据用户名,密码查找用户
     * @param userName 用户名
     * @param userPassword 密码
     * @return
     */
    @Override
    public SysUser getUser(String userName, String userPassword)
    {
        String hql = "select t from SysUser t where t.userName=:userName and t.userPassword = :userPassword";
        Query query = getSession().createQuery(hql).setParameter("userName", userName);
        query.setParameter("userPassword", userPassword);
        return (SysUser) query.uniqueResult();
    }

    /**
     * 根据序列号,硬盘序列号,网卡地址查找用户
     * @param serialNo 序列号
     * @param diskSerial 硬盘序列号
     * @param macAddr 网卡地址
     * @return
     */
    @Override
    public SysUser getUser(String serialNo, String diskSerial, String macAddr)
    {
        String hql = "select t from SysUser t where t.serialNo=:serialNo and t.diskSerial = :diskSerial and t.macAddr=:macAddr";
        Query query = getSession().createQuery(hql);
        query.setParameter("serialNo", serialNo);
        query.setParameter("diskSerial", diskSerial);
        query.setParameter("macAddr", macAddr);
        return (SysUser) query.uniqueResult();
    }

    /**
     * 根据盒子序列号找用户List
     * @param serialNo 序列号
     * @return
     */
    @SuppressWarnings("unchecked")
    @Override
    public List<SysUser> findUserList(String serialNo)
    {
        Criteria criteria = getSession().createCriteria(entityClass).add(Restrictions.eq("serialNo", serialNo));
        return criteria.list();
    }

    /**
     * 根据用户的状态和用户类型查找用户
     * @param status 状态
     * @param userType 用户类型
     * @return
     */
    @SuppressWarnings("unchecked")
    @Override
    public List<SysUser> findUserList(int userType, int status)
    {
        Criteria criteria = getSession().createCriteria(entityClass).add(Restrictions.eq("userType", userType)).add(Restrictions.eq("status", status));
        return criteria.list();
    }

    /**
     * 获取4s/专家的视频序列号
     */
    @Override
    public int getVideoSystemId()
    {
        return seqVideoSystemIdGenerator.nextIntValue();
    }

    /**
     * 根据盒子序列号和用户状态查找用户
     * @param serialNo 序列号
     * @param status 状态
     * @return
     */
    @Override
    public SysUser getUser(String serialNo, int status)
    {
        Criteria criteria = getSession().createCriteria(entityClass).add(Restrictions.eq("serialNo", serialNo)).add(Restrictions.eq("status", status));
        return (SysUser) criteria.uniqueResult();
    }

    /**
     * 获取视频序列号产生器对象
     * @param getSeqVideoSystemIdGenerator
     * @return
     */
    public OracleSequenceMaxValueIncrementer getSeqVideoSystemIdGenerator()
    {
        return seqVideoSystemIdGenerator;
    }

    @Override
    public Integer getTotalCount(Integer userType, Integer status)
    {
        Long count = (Long) getSession().createCriteria(entityClass).setProjection(Projections.rowCount()).add(Restrictions.eq("userType", userType))
        .add(Restrictions.eq("status", status)).uniqueResult();
        return new Integer(count.intValue());
      
    }
   
   
    /**
     * 根据序列号查找总数
     * @param Str
     * @return
     */
    public Integer getTotalCount(String serialNo)
    {
        Long count = (Long) getSession().createCriteria(entityClass).setProjection(Projections.rowCount()).add(Restrictions.eq("serialNo", serialNo)).uniqueResult();
        return new Integer(count.intValue());
    }
}
分享到:
评论

相关推荐

    DAOimpl(删除,查询)代码.pdf

    DAOimpl(删除,查询)代码.pdf

    自动生成sqlmap,do,dao,daoimpl

    NULL 博文链接:https://skywhsq1987.iteye.com/blog/1513734

    mybatis反向生成代码工具(包含service,serviceImpl,dao,entity,daoImpl)

    因为这是本人亲自试用过的工具,自己感觉好牛逼啊,绝对的货真价实,mybatis反向生成工具,不会用的话本人可以教授使用,所以资源分偏高

    mybatis的逆向工程代码

    mybatis的逆向工程代码 mybatis的逆向工程代码 mybatis的逆向工程代码

    Spring struts文档上传代码

    实体类entity:文档对象实体 action: 是struts中action层 主要处理表现层的东西 facade:只是一个门面模式(不起多大的作用)主要是... (**DAO是一个接口 每个这样的dao都有个它的实现类与它对应 -也就是**DAOImpl)

    简单的jsp+servlet+javaBean访问mysql数据库

    jsp+servlet+javaBean访问数据库的简单例子,但是类设置非常巧妙,大家注意。

    IBatisNet的Codesmith模板

    DaoImpl, the C# DAO implementation class that implements the interface referred by DaoIntf. SqlMap, the IBatis.NET SQL mapping file that contains SQL statements used in the DaoImpl above.

    基于WIKI的课程交流系统

    其中我负责总体设计及协作交流管理模块的设计开发 技术要求:1、采用MVC+DAO模式设计开发,其中的VO包主要处理表字段,DAO包主要包括数据操作方法的声明,这些方法在DAOImpl包中实现。在DAO工厂模式的基础上,引入...

    Spring+MyBatis/Hibernate+Ehcache+Maven的Demo Web项目(稳定版)

    见DaoImpl类 3.Ehcache方法缓存及页面缓存。见applicationContext-cache.xml及web.xml的pageEhCacheFilter 4.MyBatis+Maven代码生成工具。见bin目录 5.作为项目或者技术研究的基础架构。必要的jar包依赖都已配置好,...

    JAVA代码生成,支持模板自定义,完美运行

    2.ssm模板实现:pojo,dao,daoimpl,service,serviceimpl,controller,各mapper.xml 代码自动生成, 3.配置文件自动生(含:spring,springMVC,mybatis,web.xml); 代码完美运行. 使用: 1.配置generator.xml(key):...

    Java代码生成

    2.ssm模板实现:pojo,dao,daoimpl,service,serviceimpl,controller,各mapper.xml 代码自动生成, 3.配置文件自动生(含:spring,springMVC,mybatis,web.xml); 代码完美运行. 使用: 1.配置generator.xml(key):basepackage...

    Spring+MyBatis/Hibernate+Ehcache+Maven的Demo Web项目

    见DaoImpl类 3.Ehcache方法缓存及页面缓存。见applicationContext-cache.xml及web.xml的pageEhCacheFilter 4.MyBatis+Maven代码生成工具。见bin目录 5.作为项目或者技术研究的基础架构。必要的jar包依赖都已配置好,...

    java-web_学生管理系统(完成实现三成架构)

    6,从前台页面开始向后进行调用,jsp--&gt;sertlet--&gt;service--&gt;daoimpl 。 7,依次实现各层方法。 主要用的三层架构实现: (1)表示层(USL,即User Show Layer):视图层     a. 前台:对应于MVC中的View,用于...

    spring考试通过必备材料.docx

    *DAOImpl,DAO实现类 20 在struts.xml中配置页面跳转关系, 21 在applicationContext.xml中配置类之间的调用关系, 22 通知 23 通知文件MyAdvice,schema方法的通知 23 在applicationContext.xml中配置通知--通知文件...

    SSH代码生成工具 SSH代码生成器

    DAOImpl --&gt; DAO接口Implements实现类 程序配置 --&gt; web.xml 验证框架--&gt; bean-validation.xml (实体验证)、SaveAction-validation.xml (保存验证)、UpdateAction-validation.xml (修改验证) 日志管理配置 --&gt; ...

    虚拟数据层 Struts2、Hibernate、Spring整合的泛型DAO Version 2010.9.27

    泛型daoimpl :GenericDaoImpl, ID extends Serializable&gt; implements GenericDao, ID&gt; 必须提供的构造方法,以便创建实例的时候就知道具体实体的类型。 daoimpl :PersonDAOImpl extends GenericDaoImpl, ...

    泛型dao 泛型dao 泛型dao

    泛型daoimpl :GenericDaoImpl, ID extends Serializable&gt; implements GenericDao, ID&gt; 必须提供的构造方法,以便创建实例的时候就知道具体实体的类型。 daoimpl :PersonDAOImpl extends GenericDaoImpl, ...

    AutoCode代码生成器【SSH版】

    DAOImpl --&gt; DAO接口Implements实现类 程序配置 --&gt; web.xml 验证框架--&gt; bean-validation.xml (实体验证)、SaveAction-validation.xml (保存验 证)、UpdateAction-validation.xml (修改验证) 日志管理配置 --&gt; ...

    AutoCode代码生成器(SSH版)

    DAOImpl --&gt; DAO接口Implements实现类 程序配置 --&gt; web.xml 验证框架--&gt; bean-validation.xml (实体验证)、SaveAction-validation.xml (保存验证)、UpdateAction-validation.xml (修改验证) 日志管理配置 --&gt; ...

    ssh代码生成器轻松、快捷

    DAOImpl --&gt; DAO接口Implements实现类 程序配置 --&gt; web.xml 验证框架--&gt; bean-validation.xml (实体验证)、SaveAction-validation.xml (保存验证)、UpdateAction-validation.xml (修改验证) 日志管理配置 --&gt; log4j...

Global site tag (gtag.js) - Google Analytics