Advance Java Practical Journal
ISBN 9788119221226

Highlights

Notes

  

Annexure – IV: Steps to run JDBC Spring Programs

Interface StudentDAO

package com.example;

import java.util.List;

import javax.sql.DataSource;

public interface StudentDAO {

/**

* This is to be used to initialize

* databaseconnection.

*/

public void setDataSource(DataSource ds);

/**

* This is to be used to create

* a record in Student table.

*/

public void create(String name, Integer age);

/**

* This is to be used to list down

* a record from the Student table corresponding

* to a passed student id.

*/

public Student getStudent(Integer id);

/**

* This is to be used to list down

* all the records from the Student table.

*/

public List<Student> listStudents();

/**

* This is to be used to delete

* a record from the Student table corresponding

* to a passed student id.

*/

public void delete(Integer id);

/**

* This is to be used to update

* a record into the Student table.

*/

public void update(Integer id, Integer age);

}

Student.java

package com.example;

public class Student {

  • private Integer age;
  • private String name;
  • private Integer id;
  • public Integer getAge() {
    • return age;
  • }
  • public String getName() {
    • return name;
  • }
  • public Integer getId() {
    • return id;
  • }
  • public void setAge(Integer age) {
    • this.age = age;
  • }
  • public void setName(String name) {
    • this.name = name;
  • }
  • public void setId(Integer id) {
    • this.id = id;
  • }

}

StudentMapper.java

package com.example;

import java.sql.ResultSet;

import java.sql.SQLException;

import org.springframework.jdbc.core.RowMapper;

public class StudentMapper implements RowMapper<Student> {

  • @Override
  • public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
    • // TODO Auto-generated method stub
    • Student student = new Student();
    • student.setId(rs.getInt(“id”));
    • student.setName(rs.getString(“name”));
    • student.setAge(rs.getInt(“age”));
    • return student;
    • }

}

iii. Implement this class file

For the DAO interface StudentDAO use the following implementation class file StudentJDBCTemplate.java

package com.example;

import java.util.List;

import javax.sql.DataSource;

import org.springframework.jdbc.core.JdbcTemplate;

public class StudentJDBCTemplate implements StudentDAO {

private DataSource dataSource;

private JdbcTemplate jdbcTemplateObject;

public void setDataSource(DataSource dataSource) {

this.dataSource = dataSource;

this.jdbcTemplateObject = new JdbcTemplate(dataSource);

}

public void create(String name, Integer age) {

String SQL = “insert into Student (name, age) values (?, ?)”;

jdbcTemplateObject.update(SQL, name, age);

System.out.println(“Created Record Name = “ + name + “ Age = “ + age);

return;

}

public Student getStudent(Integer id) {

String SQL = “select * from Student where id = ?”;

Student student = jdbcTemplateObject.queryForObject(SQL,

new Object[]{id}, new StudentMapper());

return student;

}

public List<Student> listStudents() {

String SQL = “select * from Student”;

List <Student> students = jdbcTemplateObject.query(SQL, new StudentMapper());

return students;

}

public void delete(Integer id) {

String SQL = “delete from Student where id = ?”;

jdbcTemplateObject.update(SQL, id);

System.out.println(“Deleted Record with ID = “ + id);

return;

}

public void update(Integer id, Integer age){

String SQL = “update Student set age = ? where id = ?”;

jdbcTemplateObject.update(SQL, age, id);

System.out.println(“Updated Record with ID = “ + id);

return;

}

}

Beans.xml

<?xml version=“1.0” encoding=“UTF-8”?>

<beans xmlns=http://www.springframework.org/schema/beans

xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

xmlns:context=http://www.springframework.org/schema/context

xmlns:jdbc=http://www.springframework.org/schema/jdbc

xmlns:lang=http://www.springframework.org/schema/lang

xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-4.3.xsd

http://www.springframework.org/schema/jdbc

http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd

http://www.springframework.org/schema/lang

http://www.springframework.org/schema/lang/spring-lang-4.3.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/Test”/>

<property name=username” value=“root”/>

<property name=password” value=““/>

</bean>

<bean id=“studentJDBCTemplate” class=“com.example.StudentJDBCTemplate”>

<property name=dataSource” ref=“dataSource”/>

</bean>

</beans>

MainApp.java

package com.example;

import java.util.List;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.example.StudentJDBCTemplate;

public class MainApp {

public static void main(String[] args) {

ApplicationContext context = new ClassPathXmlApplicationContext(“Beans.xml”);

StudentJDBCTemplate studentJDBCTemplate =

(StudentJDBCTemplate)context.getBean(“studentJDBCTemplate”);

System.out.println(“------Records Creation--------”);

studentJDBCTemplate.create(“Hari”, 11);

studentJDBCTemplate.create(“Nuha”, 2);

studentJDBCTemplate.create(“Ayan”, 15);

System.out.println(“------Listing Multiple Records--------”);

List<Student> students = studentJDBCTemplate.listStudents();

for (Student record: students) {

System.out.print(“ID : “ + record.getId());

System.out.print(“, Name : “ + record.getName());

System.out.println(“, Age : “ + record.getAge());

}

System.out.println(“----Updating Record with ID = 2 -----”);

studentJDBCTemplate.update(2, 20);

System.out.println(“----Listing Record with ID = 2 -----”);

Student student = studentJDBCTemplate.getStudent(2);

System.out.print(“ID : “ + student.getId());

System.out.print(“, Name : “ + student.getName());

System.out.println(“, Age : “ + student.getAge());

}

}