Spring JDBC example with JdbcDaoSupport
Previous example Spring JDBC example with JdbcTemplate
shows how to use JdbcTemplate to make JDBC calls. You can make your JDBC calls even more simple by extending JdbcDaoSupport. If your DAO class extends
JdbcDaoSupport, then you dont need to use JdbcTemplate in your code, here is the example for JdbcDaoSupport:
pom.xml file gives all required dependencies:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SpringHelloWorld</groupId>
<artifactId>SpringHelloWorld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<spring.version>3.2.0.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.31</version>
</dependency>
</dependencies>
</project>
|
Employee model class:
package com.java2novice.model;
public class Employee {
private int empId;
private String name;
private int salary;
private String dept;
public int getEmpId() {
return empId;
}
public void setEmpId(int empId) {
this.empId = empId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
}
|
Employee DAO interface:
package com.java2novice.dao;
import com.java2novice.model.Employee;
public interface EmployeeDao {
public void insertEmployee(Employee emp);
}
|
Employee DAO implementation class: Note that below class extended JdbcDaoSupport, and didnot use JdbcTemplate directly.
package com.java2novice.dao;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import com.java2novice.model.Employee;
public class EmployeeDaoImpl extends JdbcDaoSupport implements EmployeeDao{
@Override
public void insertEmployee(Employee emp) {
String query = "insert into employee (name,salary,dept) values (?,?,?)";
Object[] inputs = new Object[] {emp.getName(), emp.getSalary(), emp.getDept()};
getJdbcTemplate().update(query, inputs);
}
}
|
Here is the xml based configuration file, look at mysql DB configurations:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/java2novice" />
<property name="username" value="user_name" />
<property name="password" value="password" />
</bean>
<bean id="employeeDAO" class="com.java2novice.dao.EmployeeDaoImpl">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
|
Here is the final demo class:
package com.java2novice.test;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.java2novice.dao.EmployeeDao;
import com.java2novice.model.Employee;
public class SpringDemo {
public static void main(String a[]){
String confFile = "applicationContext.xml";
ConfigurableApplicationContext context =
new ClassPathXmlApplicationContext(confFile);
EmployeeDao empDao = (EmployeeDao) context.getBean("employeeDAO");
Employee emp = new Employee();
emp.setName("Priya");
emp.setSalary(60000);
emp.setDept("HR");
empDao.insertEmployee(emp);
}
}
|
|