Extends SqlUpdateExecute Update Statement : SqlUpdate « Spring « Java






Extends SqlUpdateExecute Update Statement

       
File: EmployeeDaoImpl.java

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.SqlOutParameter;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.jdbc.core.support.AbstractLobCreatingPreparedStatementCallback;
import org.springframework.jdbc.core.support.AbstractLobStreamingResultSetExtractor;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.object.MappingSqlQuery;
import org.springframework.jdbc.object.SqlUpdate;
import org.springframework.jdbc.object.StoredProcedure;
import org.springframework.jdbc.support.lob.DefaultLobHandler;
import org.springframework.jdbc.support.lob.LobCreator;
import org.springframework.jdbc.support.lob.LobHandler;
import org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor;
import org.springframework.util.FileCopyUtils;

//import org.apache.commons.dbcp.BasicDataSource;


public class EmployeeDaoImpl extends JdbcDaoSupport{
  private UpdateAgeQuery updateAgeQuery;
  
  protected void initDao() throws Exception {
    super.initDao();
    getJdbcTemplate().setNativeJdbcExtractor(new SimpleNativeJdbcExtractor());
    updateAgeQuery = new UpdateAgeQuery(getDataSource());
  }
  public void updateAge(Integer employeeId, Integer age) {
    updateAgeQuery.update(new Object[] { age, employeeId });
  }

}

class UpdateAgeQuery extends SqlUpdate {
  private static final String SQL_QUERY = "UPDATE employee SET age = ? WHERE id = ?";

  public UpdateAgeQuery(DataSource dataSource) {
    super(dataSource, SQL_QUERY);
    declareParameter(new SqlParameter("age", Types.INTEGER));
    declareParameter(new SqlParameter("id", Types.INTEGER));
    compile();
  }
}



  

    
class Employee {
  private Integer id;

  private Name name = new Name();

  private Integer age;

  private Sex sex;

  private Address address = new Address();

  private List<PhoneNumber> phoneNumbers = new ArrayList<PhoneNumber>();

  public Employee() {
  }

  public Employee(String firstName, String lastName) {
    this.getName().setFirst(firstName);
    this.getName().setLast(lastName);
  }

  void setId(Integer id) {
    this.id = id;
  }

  public Integer getId() {
    return id;
  }

  public Address getAddress() {
    return address;
  }

  public Integer getAge() {
    return age;
  }

  public void setAge(Integer age) {
    this.age = age;
  }

  public Name getName() {
    return name;
  }

  public List<PhoneNumber> getPhoneNumbers() {
    return Collections.unmodifiableList(phoneNumbers);
  }

  public void addPhoneNumber(PhoneNumber phoneNumber) {
    this.phoneNumbers.add(phoneNumber);
  }

  public void removePhoneNumber(PhoneNumber phoneNumber) {
    this.phoneNumbers.remove(phoneNumber);
  }

  public void removePhoneNumber(int index) {
    this.phoneNumbers.remove(index);
  }

  public Sex getSex() {
    return sex;
  }

  public void setSex(Sex sex) {
    this.sex = sex;
  }
}

abstract class Sex {

  public static final Sex MALE = new Male();

  public static final Sex FEMALE = new Female();

  public boolean equals(Object o) {
    if (o == null) {
      return false;
    }
    return getClass().equals(o.getClass());
  }
}

class PhoneNumber {

}

class Address {
  private String line1;

  private String line2;

  private String city;

  private String state;

  private String zip;

  public void setLine1(String line1) {
    this.line1 = line1;
  }

  public String getLine1() {
    return this.line1;
  }

  public void setLine2(String line2) {
    this.line2 = line2;
  }

  public String getLine2() {
    return this.line2;
  }

  public void setCity(String city) {
    this.city = city;
  }

  public String getCity() {
    return this.city;
  }

  public void setState(String state) {
    this.state = state;
  }

  public String getState() {
    return this.state;
  }

  public void setZip(String zip) {
    this.zip = zip;
  }

  public String getZip() {
    return this.zip;
  }
}

final class Male extends Sex {
  protected Male() {

  }
}

final class Female extends Sex {
  protected Female() {

  }
}


class Name {
  private String first;

  private String middle;

  private String last;

  public void setFirst(String first) {
    this.first = first;
  }

  public String getFirst() {
    return this.first;
  }

  public void setMiddle(String middle) {
    this.middle = middle;
  }

  public String getMiddle() {
    return this.middle;
  }

  public void setLast(String last) {
    this.last = last;
  }

  public String getLast() {
    return this.last;
  }
}


File: Main.java

import java.util.Date;
import java.util.GregorianCalendar;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

class Main {
  public static void main(String args[]) throws Exception {
    ApplicationContext ctx = new ClassPathXmlApplicationContext(
        "context.xml");
    EmployeeDaoImpl ws = (EmployeeDaoImpl) ctx.getBean("employeeDao");

  }
}


File: context.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
      destroy-method="close">
  <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
  <property name="url" value="jdbc:hsqldb:mem:."/>
  <property name="username" value="sa"/>
  <property name="password" value=""/>
</bean>

<bean id="employeeDao" class="EmployeeDaoImpl">
  <property name="dataSource" ref="dataSource"/>
</bean>

</beans>




           
       








Spring-ExtendsSqlUpdateExecuteUpdateStatement.zip( 3,661 k)

Related examples in the same category

1.extends SqlUpdate to create named sql statement with parameters
2.Extends SqlUpdate To Execute Insert Statement
3.Extends SqlUpdate And Provide Customized Parameters
4.Delete Statement With Parameter