com.neeti.neg.dao.impl.RegisterUserDaoImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.neeti.neg.dao.impl.RegisterUserDaoImpl.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.neeti.neg.dao.impl;

import com.neeti.neg.dao.RegisterUserDao;
import com.neeti.neg.modal.RegisterUser;
import com.neeti.neg.modal.UserRole;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
import org.springframework.stereotype.Repository;

/**
 *
 * @author manishas
 */
@Repository
public class RegisterUserDaoImpl implements RegisterUserDao {

    private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
    private SimpleJdbcInsert insertUser;
    private static final String SQL_COUNTUSERS_BYUSERNAME = "select count(*) from user where groupname = :groupname";
    private static final String SQL_CREATE_USERROLE = "INSERT INTO user_role (username, user_role) VALUES (:groupname,:role)";
    private static final String SQL_GETUSER_BYUSERNAME = "SELECT groupid, groupname, grouppassword, teammembers, email, enabled FROM user WHERE groupname = :groupname";
    private static final String SQL_GETGAMEREF = "SELECT gameid FROM games where gamereqid= :gamereqid and gamepass=:gamepassword";

    @Autowired
    public void setDataSource(DataSource dataSource) {
        this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
        this.insertUser = new SimpleJdbcInsert(dataSource).withTableName("user")
                .usingColumns("groupname", "grouppassword", "teammembers", "email", "enabled")
                .usingGeneratedKeyColumns("groupid");
    }

    @Override
    public long createUser(RegisterUser registerUser) {
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("groupname", registerUser.getGroupName());
        parameters.put("grouppassword", registerUser.getGroupPassword());
        parameters.put("teammembers", registerUser.getTeamMembers());
        parameters.put("email", registerUser.getEmail());
        parameters.put("enabled", registerUser.getEnabled());
        Number userid = insertUser.executeAndReturnKey(parameters);
        return userid.longValue();
    }

    @Override
    public void createUserRole(RegisterUser registerUser) {
        //loop through user role list
        for (UserRole userRole : registerUser.getUserRoleList()) {
            Map<String, Object> namedParameters = new HashMap<>();
            namedParameters.put("groupname", registerUser.getGroupName());
            namedParameters.put("role", userRole.getRole());
            this.namedParameterJdbcTemplate.update(SQL_CREATE_USERROLE, namedParameters);
        }
    }

    @Override
    public int countOfUsersByUserName(String username) {
        SqlParameterSource namedParameters = new MapSqlParameterSource("groupname", username);
        int i = this.namedParameterJdbcTemplate.queryForObject(SQL_COUNTUSERS_BYUSERNAME, namedParameters,
                Integer.class);
        return i;

    }

    @Override
    public int getGameId(String gameRefId, String pass) {
        MapSqlParameterSource namedParameters = new MapSqlParameterSource();
        namedParameters.addValue("gamereqid", gameRefId);
        namedParameters.addValue("gamepassword", pass);

        int temp = 0;
        try {
            temp = this.namedParameterJdbcTemplate.queryForInt(SQL_GETGAMEREF, namedParameters);
        } catch (Exception e) {
            e.printStackTrace();
            temp = 0;
        } finally {
            //status=(boolean) temp;
            return temp;

        }
    }

    @Override
    public RegisterUser getRegisterUserByUserName(String username) {
        SqlParameterSource namedParameters = new MapSqlParameterSource("groupname", username);
        RegisterUser registerUser = (RegisterUser) this.namedParameterJdbcTemplate
                .queryForObject(SQL_GETUSER_BYUSERNAME, namedParameters, new RegisterUserRowMapper());
        return registerUser;
    }

    public class RegisterUserRowMapper implements RowMapper {

        @Override
        public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
            RegisterUser registerUser = new RegisterUser();
            registerUser.setUserId(rs.getInt("groupid"));
            registerUser.setGroupName(rs.getString("groupname"));
            registerUser.setGroupPassword(rs.getString("grouppassword"));
            registerUser.setTeamMembers(rs.getString("teammembers"));
            registerUser.setEmail(rs.getString("email"));
            registerUser.setEnabled(rs.getInt("enabled"));
            return registerUser;
        }

    }
}