package com.dineshonjava.sdnext.dao; import java.util.List; import com.dineshonjava.sdnext.domain.Employee; /** * @author Dinesh Rajput * */ public interface EmpDao { /** * This is the method to be used to create * a record in the Employee table. */ void create(String name, Integer age, Long salary); /** * This is the method to be used to list down * a record from the Employee table corresponding * to a passed Employee id. */ Employee getEmployee(Integer empid); /** * This is the method to be used to list down * all the records from the Employee table. */ List listEmployees(); /** * This is the method to be used to delete * a record from the Employee table corresponding * to a passed Employee id. */ void delete(Integer empid); /** * This is the method to be used to update * a record into the Employee table. */ void update(Integer empid, Integer age); }EmployeeDaoImpl.java
package com.dineshonjava.sdnext.dao.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.SqlParameterSource; import org.springframework.stereotype.Component; import com.dineshonjava.sdnext.dao.EmpDao; import com.dineshonjava.sdnext.domain.Employee; import com.dineshonjava.sdnext.jdbc.utils.EmployeeMapper; /** * @author Dinesh Rajput * */ @Component public class EmployeeDaoImpl implements EmpDao { @Autowired private NamedParameterJdbcTemplate namedParameterJdbcTemplate; /** * @param namedParameterJdbcTemplate the namedParameterJdbcTemplate to set */ public void setNamedParameterJdbcTemplate(NamedParameterJdbcTemplate namedParameterJdbcTemplate) { this.namedParameterJdbcTemplate = namedParameterJdbcTemplate; } @Override public void create(String name, Integer age, Long salary) { String SQL = "INSERT INTO Employee (name, age, salary) VALUES (:name, :age, :salary)"; Map namedParameters = new HashMap(); namedParameters.put("name", name); namedParameters.put("age", age); namedParameters.put("salary", salary); namedParameterJdbcTemplate.update(SQL, namedParameters); System.out.println("Created Record Name = " + name + " Age = " + age+ " Salary = " + salary); } @Override public Employee getEmployee(Integer empid) { String SQL = "SELECT * FROM Employee WHERE empid = :empid"; SqlParameterSource namedParameters = new MapSqlParameterSource("empid", Integer.valueOf(empid)); Employee employee = (Employee) namedParameterJdbcTemplate.queryForObject(SQL, namedParameters, new EmployeeMapper()); return employee; } @Override public List listEmployees() { String SQL = "SELECT * FROM Employee"; List employees = (List) namedParameterJdbcTemplate.query(SQL, new EmployeeMapper()); return employees; } @Override public void delete(Integer empid) { String SQL = "DELETE FROM Employee WHERE empid = :empid"; SqlParameterSource namedParameters = new MapSqlParameterSource("empid", Integer.valueOf(empid)); namedParameterJdbcTemplate.update(SQL, namedParameters); System.out.println("Deleted Record with EMPID = " + empid ); } @Override public void update(Integer empid, Integer age) { String SQL = "UPDATE Employee SET age = :age WHERE empid = :empid"; SqlParameterSource namedParameters = new MapSqlParameterSource(); namedParameters.addValue("age", age); namedParameters.addValue("empid", empid); namedParameterJdbcTemplate.update(SQL, namedParameters); System.out.println("Updated Record with EMPID = " + empid ); } }EmployeeMapper.java
package com.dineshonjava.sdnext.jdbc.utils; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.jdbc.core.RowMapper; import com.dineshonjava.sdnext.domain.Employee; /** * @author Dinesh Rajput * */ public class EmployeeMapper implements RowMapper { public Employee mapRow(ResultSet rs, int rowNum) throws SQLException { Employee employee = new Employee(); employee.setEmpid(rs.getInt("empid")); employee.setName(rs.getString("name")); employee.setAge(rs.getInt("age")); employee.setSalary(rs.getLong("salary")); return employee; } }Spring.xml
<beans xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:security="http://www.springframework.org/schema/security" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <context:annotation-config></context:annotation-config> <context:component-scan base-package="com.dineshonjava.sdnext.dao.impl"> </context:component-scan> <bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/DAVDB"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> <property name="initialSize" value="2"></property> <property name="maxActive" value="5"></property> </bean> <bean class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate" id="namedParameterJdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> </beans>
Labels: Spring3.0