Java tutorial
/* * 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.ignite.dao; import com.ignite.domain.Client; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.UUID; import javax.sql.DataSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport; import org.springframework.security.access.prepost.PreAuthorize; /** * * @author maslo */ public class ClientDao extends SimpleJdbcDaoSupport { @Autowired DataSource dataSource; protected final Log logger = LogFactory.getLog(getClass()); @PreAuthorize("hasRole('ROLE_TELLER')") public Client getClient(String username) { logger.info("Getting client"); JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); List<Client> products = jdbcTemplate.query( "select firstname, lastname, username, pid from users where username=" + "'" + username + "" + "'", new ClientMapper()); return products.get(0); } @PreAuthorize("hasRole('ROLE_TELLER')") public List<Client> getClients() { logger.info("Getting clients"); JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); List<Client> products = jdbcTemplate.query("select firstname, lastname, username, pid from users", new ClientMapper()); return products; } @PreAuthorize("hasRole('ROLE_TELLER')") public void saveClient(Client client) { logger.info("Saving client: " + client.getLastname()); getSimpleJdbcTemplate().update( "insert into users (firstname,lastname,username,password,pid) values (:firstname, :lastname, :username, :password, :pid )", new MapSqlParameterSource().addValue("firstname", client.getFirstname()) .addValue("lastname", client.getLastname()).addValue("username", client.getLogin()) .addValue("password", client.getPassword()).addValue("pid", UUID.randomUUID().toString())); getSimpleJdbcTemplate().update("insert into user_roles (username,ROLE) values (:username, :role)", new MapSqlParameterSource().addValue("username", client.getLogin()).addValue("role", "ROLE_CLIENT")); } private static class ClientMapper implements ParameterizedRowMapper<Client> { @Override public Client mapRow(ResultSet rs, int rowNum) throws SQLException { Client client = new Client(); client.setPid(rs.getString("pid")); client.setFirstname(rs.getString("firstname")); client.setLastname(rs.getString("lastname")); client.setLogin(rs.getString("username")); return client; } } }