Java tutorial
/* * Copyright 2012 Eng Kam Hon (kamhon@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.kamhon.ieagle.function.user.dao.mysql; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import net.kamhon.ieagle.FrameworkConst; import net.kamhon.ieagle.aop.AppDetailsBaseAdvice; import net.kamhon.ieagle.dao.AbstractJdbcDao; import net.kamhon.ieagle.function.user.dao.UserDetailsSqlDao; import net.kamhon.ieagle.function.user.vo.UserAccess; import org.springframework.jdbc.core.RowMapper; public class UserDetailsSqlDaoImpl extends AbstractJdbcDao implements UserDetailsSqlDao { public List<UserAccess> findUserAuthorizedAccess(String userId) { String sql = " select ra.access_code, " // + " sum(case when ra.create_mode then 1 else 0 end) create_mode, " // + " sum(case when ra.read_mode then 1 else 0 end) read_mode, " // + " sum(case when ra.update_mode then 1 else 0 end) update_mode, " // + " sum(case when ra.delete_mode then 1 else 0 end) delete_mode, " // + " sum(case when ra.admin_mode then 1 else 0 end) admin_mode " // + " from " // + " app_user u " // + " inner join app_user_in_role ur on u.user_id = ur.user_id " // + " inner join app_user_role r on r.role_id = ur.role_id " // + " inner join app_user_role_access ra on r.role_id = ra.role_id " // + " where u.user_id = ? and r.status=? " // + " group by ra.access_code " // + " order by ra.access_code "; List<Object> params = new ArrayList<Object>(); params.add(userId); params.add(FrameworkConst.STATUS_APPROVED); List<UserAccess> userAccesses = (List<UserAccess>) query(sql, new RowMapper<UserAccess>() { public UserAccess mapRow(ResultSet rs, int arg1) throws SQLException { UserAccess userAccess = new UserAccess(false); userAccess.setAccessCode(rs.getString("ACCESS_CODE")); userAccess.setCreateMode(rs.getInt("CREATE_MODE") >= 1); userAccess.setReadMode(rs.getInt("READ_MODE") >= 1); userAccess.setUpdateMode(rs.getInt("UPDATE_MODE") >= 1); userAccess.setDeleteMode(rs.getInt("DELETE_MODE") >= 1); userAccess.setAdminMode(rs.getInt("ADMIN_MODE") >= 1); return userAccess; } }, params.toArray()); return userAccesses; } @Override public void initDataUpdateAdminPrimaryKey() { String sql = "update app_user\n" // + "set user_id=?\n" // + "where user_id!=? and username='ADMIN'"; update(sql, AppDetailsBaseAdvice.SYSTEM_USER_ID, AppDetailsBaseAdvice.SYSTEM_USER_ID); } }