Spring Jdbctemplate
https://docs.spring.io/spring/docs/current/spring-framework-reference/data-access.html
working example: https://github.com/teachkoka/jdbctemplate
application.property
student.db.driver = org.postgresql.Driver student.db.url = jdbc:postgresql://127.0.0.1:5432/b6 student.db.username = postgres student.db.password = abcd12345
Repository Class
@Repository
public class StudentRepository {
public static final String INSERT_STUDENT_QUERY ="INSERT INTO STUDENT(name) VALUES (?)";
public static final String FIND_STUDENT_QUERY ="SELECT * FROM STUDENT";
@Autowired
public JdbcTemplate jdbcTemplate;
public void save(String name){
jdbcTemplate.update(INSERT_STUDENT_QUERY,name);
}
public List<String> findAll(){
List<Map<String, Object>> rows= jdbcTemplate.queryForList(FIND_STUDENT_QUERY);
ArrayList<String> list = new ArrayList<String>();
for(Map row:rows){
list.add((String)row.get("name"));
}
return list;
}
}
AppConfig.java
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.JstlView;
import org.springframework.web.servlet.view.UrlBasedViewResolver;
@Configuration
@ComponentScan("com.teach.koka.javaconfig")
@EnableWebMvc
@PropertySource("classpath:application.properties")
public class AppConfig {
@Autowired
Environment env;
@Bean
public UrlBasedViewResolver urlBasedViewResolver(){
UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();
viewResolver.setPrefix("/WEB-INF/pages/");
viewResolver.setSuffix(".jsp");
viewResolver.setViewClass(JstlView.class);
return viewResolver;
}
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasenames("application");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
/**
* An alternative to the DriverManager facility, a DataSource object is
* the preferred means of getting a connection.
*/
@Bean
public DataSource dataSource(){
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getRequiredProperty("student.db.driver"));
dataSource.setUrl(env.getRequiredProperty("student.db.url"));
dataSource.setUsername(env.getRequiredProperty("student.db.username"));
dataSource.setPassword(env.getRequiredProperty("student.db.password"));
return dataSource;
}
@Bean
public JdbcTemplate jdbcTemplate(){
JdbcTemplate jdbcTemplate = new JdbcTemplate();
jdbcTemplate.setDataSource(dataSource());
return jdbcTemplate;
}
}
Controller class
package com.teach.koka.javaconfig.jdbctemplate.controller;
import java.util.*;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.teach.koka.javaconfig.jdbctemplate.model.Student;
import com.teach.koka.javaconfig.jdbctemplate.repository.StudentRepository;
@Controller
@RequestMapping(value="/student")
public class StudentController {
@Autowired
StudentRepository repository;
@RequestMapping(method=RequestMethod.GET)
public String studentData(Model model){
Student student = new Student();
model.addAttribute("student",student);
model.addAttribute("message","Welcome...");
return "student-login";
}
@RequestMapping(method=RequestMethod.POST)
public String postStudentData(@ModelAttribute("student") @Valid Student student,BindingResult result, Model model){
if(result.hasErrors()){
return "student-login";
}
String text ="Hey Welcome to MVC world...,"+student.getName();
repository.save(student.getName());
model.addAttribute("message",text);
List list = repository.findAll();
model.addAttribute("list",list);
return "success";
}
}
Iterator on jsp
<div>
<c:forEach var="student" items="${list}">
<c:out value="${student}"/></br>
</c:forEach>
</div>