ARCmop Java Programacion Solaris Linux

Java-linux-programacion

Spring: Conectando a Postgresql e insertando datos

Posted by Cmop en diciembre 3, 2010

Bueno, esta noche me encuentro recontra motivado (AFE🙂 ), y veré como podemos hacer para a través de Spring conectarnos a una Base Datos, en el ejemplo usaré postgresql como SGBDR.

 

netbeans spring

netbeans spring

El ejemplo Consiste Básicamente en una modificación del ejemplo anterior, pero esta vez en lugar de solo mostrar los datos en una nueva ventana, los guardaremos en una Base de Datos dentro de un Servidor Postgresql, para ello usaremos la clase JdbcTemplate de Spring.

En la vista básicamente no hay modificación:

 

01_spring_postgresql

01_spring_postgresql

Pero he agregado otra vista la cual muestra los datos que son almacenados en la BD:

 

spring_postgresql

spring_postgresql

 

 

Pero el dispatcher-servlet si ha cambiado un poco, pues le he agregado los siguientes beans:

    <bean name="personita" class="controlador.controladorPersona" p:serviciosPersona-ref="servicioPersona" p:personaSpringDAO-ref="daoPersona" />

    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="index.htm">personita</prop>
            </props>
        </property>
    </bean>

    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/"
          p:suffix=".jsp" />

    <bean name="daoPersona" class="dao.PersonaSpringDAO">
       <property name="jdbcTemplate" ref="jdbcTemplateSpring" />
   </bean>

   <bean id="jdbcTemplateSpring" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg>
            <ref bean="dataSource" />
        </constructor-arg>
    </bean>

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="org.postgresql.Driver" />
        <property name="url" value="jdbc:postgresql://localhost:5432/springPrueba" />
        <property name="username" value="postgres" />
        <property name="password" value="minibarreras" />
    </bean>

Lo que se hace aqui, es ir cumpliendo con las dependencias, a traves de constructor como el caso de jdbcTemplateSpring, y a través de propiedades como es el caso de dataSource.

Dentro de controladorPersona modificamos el metodo onSubmit.

    @Override
    protected ModelAndView onSubmit(Object command) throws Exception {
        Persona persona= (Persona)command;
        ModelAndView mv= new ModelAndView(getSuccessView());
        personaSpringDAO.create(persona);
        mv.addObject("respuestaServidor",
                serviciosPersona.imprimeDatos(
                "Guardado",
                persona.getNombres(), persona.getApellidos(),
                persona.getEdad()));
        return mv;
    }

Ademas le agregamos la propiedad que despues asociaremos:

     public void setPersonaSpringDAO(PersonaSpringDAO personaSpringDAO) {
        this.personaSpringDAO = personaSpringDAO;
     }

    private PersonaSpringDAO personaSpringDAO;

Ademá tenemos la clase Persona que sera parte de nuestro modelo:

package modelo;

/**
 *
 * @author Martin
 */
public class Persona {

    private String apellidos;
    private String nombres;
    private Integer edad;
    private Long id;

    public Persona() {
    }

    public Persona(String apellidos, String nombres, Integer edad) {
        this.apellidos = apellidos;
        this.nombres = nombres;
        this.edad = edad;
    }

    public String getApellidos() {
        return apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public Integer getEdad() {
        return edad;
    }

    public void setEdad(Integer edad) {
        this.edad = edad;
    }

    public String getNombres() {
        return nombres;
    }

    public void setNombres(String nombres) {
        this.nombres = nombres;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

}

Ademas accederemos a esta clase a traves de un DAO, PersonaDAO.

package dao;

/**
 *
 * @author Martin
 */
import java.util.Collection;
import modelo.Persona;

public interface PersonaDAO {

    public void create(Persona persona);

    public Persona find(Long Id);

    public void update(Persona customer);

    public void delete(Long customerId) ;

    public Collection findAll();
}

Esta interface sera implementada en: PersonaSpringDAO

package dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Collection;
import modelo.Persona;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

/**
 *
 * @author Martin
 */

public class PersonaSpringDAO implements PersonaDAO{

    private JdbcTemplate jdbcTemplate;

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public JdbcTemplate getJdbcTemplate() {
        return jdbcTemplate;
    }

    @Override
    public void create(Persona persona) {

        String sql = "INSERT INTO persona (" +
                    "apellidos, " +
                    "nombres, " +
                    "edad) " +
                    "VALUES ( ?, ?, ? )";

            Object[] valores = new Object[] {
                persona.getApellidos(),
                persona.getNombres(),
                persona.getEdad()
            };

            int[] tipos = new int[] {
                Types.VARCHAR,
                Types.VARCHAR,
                Types.INTEGER
            };
            jdbcTemplate.update(sql, valores, tipos);
    }

    @Override
    public Persona find(Long Id) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void update(Persona customer) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void delete(Long customerId) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Collection findAll() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}

Para este ejemplo solo implementaremos la Opcion de Guardar, en la proxima entrada veremos como hacer retornos.

Bueno veamos un video funcionando:

Subire los archivos fuentes a mediafire: aqui

Entrada dedica a AFE, que me inspira a seguir adelante.

Saludos a todos, espero haber ayudado.

3 comentarios to “Spring: Conectando a Postgresql e insertando datos”

  1. Enrique said

    Oyes compan necesito de tu ayuda con lo de JSAPI no se si me puedes contactar
    nemesis_eve@hotmail.com

  2. TEFI said

    Gracias, es justo lo que andaba buscando🙂

  3. Bernardo said

    favor me pueden ayudar estoy incursionando recien java netbeans

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: