manerger層学習_検索

2813 ワード

manger層は主にhibernateを使用しています
hibernateはjdbcの軽量パッケージであり、オブジェクト向けの方法でデータベースを操作することができる.すなわち、ORM;
  • クエリー:
  •       ,    SQL,      :
    String sql = "SELECT A FROM " + Salary.class.getName() + " A where opTime=" + opTime;
    List<Salary> salaries = searchBySql(Salary.class, sql);
  • //         ,  list.get(0);   
    public BasicSalary getByUserId(Long userId) {
    		if(null==userId){
    			return null;
    		}
    		//String sql = "SELECT A FROM  " +BasicSalary.class.getName()+ " A WHERE A.userId = " + userId + " and A.status= 1" ;
    		String sql = "SELECT A FROM  " + BasicSalary.class.getName() + " A WHERE A.userId = " + userId ;
    		List<BasicSalary> list = searchBySql(BasicSalary.class, sql);
    		if(list.size()>0){
    			return list.get(0);
    		}
    		return null;
    	}
               ,      :
         public String viewMonth(HttpServletRequest request,@PathVariable Long objectId){
    		Salary salary=salaryManager.getByObjectId(objectId);
    		request.setAttribute("salary", salary);
    		return getFileBasePath()+"showMonthSalary";
    	}
    	
    	//Salary salary=salaryManager.getByObjectId(objectId);
    	
    public T getByObjectId(Serializable objectId) {
    	if (null == objectId) {
    		return null;
    		}
    Class entityClass = getActualArgumentType();
    StringBuilder sql = new StringBuilder();
    sql.append("SELECT A FROM  ").append(entityClass.getName()).append(" A WHERE A.objectId = ?");
    		List<T> list = searchBySql(entityClass, sql.toString(), new Object[] { objectId });
    		if (list.size() > 0) {
    			return list.get(0);
    		}
    		return null;
    	}
         
        // List<T> list = searchBySql(entityClass, sql.toString(), new Object[] { objectId });
        
        public <A> List<A> searchBySql(Class<A> entity, String sql, Object... params) {
    		Query query = getSession().createQuery(sql);
    		int i = 0;
    		for (Object object : params) {
    			query.setParameter(i++, object);
    		}
    		return query.list();
    	}
    //           ,              
    public Map<Long, String> queryUserDepartment(){
    		Map<Long, String> userIdMap=new HashMap<Long, String>();
    		
    		String query2="select U.objectId,D.name from " + User.class.getName() + " as U," + Department.class.getName() + " as D "
    				 + "WHERE U.departmentId = D.objectId";
    
    		List<Object[]> result=this.getSession().createQuery(query2).list();
    		
    		for(Object[] obj:result){
    				userIdMap.put((Long)obj[0], (String)obj[1]);
    		}
    		
    		return userIdMap;
    	}
    	
    	//String query2="select U.objectId,D.name from " + User.class.getName() + " as U," + Department.class.getName() + " as D "+ "WHERE U.departmentId = D.objectId";