Select or Retrieve data using Spring JDBC Template
Step 1
package com.in28min.springboot.learnjpaandhibernate.course;
public class Course {
private long id;
private String name;
private String author;
public Course() {
super();
}
public Course(long id, String name, String author) {
super();
this.id = id;
this.name = name;
this.author = author;
}
public long getId() {
return id;
}
public String getName() {
return name;
}
public String getAuthor() {
return author;
}
public void setId(long id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAuthor(String author) {
this.author = author;
}
@Override
public String toString() {
return "Course [id=" + id + ", name=" + name + ", author=" + author + "]";
}
}
Step 2
package com.in28min.springboot.learnjpaandhibernate.course.jdbc;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import com.in28min.springboot.learnjpaandhibernate.course.Course;
@Component
public class CourseJdbcCommandLineRunner implements CommandLineRunner {
@Autowired
CourseJdbcRepository courseJdbcRepository;
@Override
public void run(String... args) throws Exception {
courseJdbcRepository.insert();
courseJdbcRepository.insertFromObject(new Course(2, "Learn Spring Boot", "Irfan Khan"));
courseJdbcRepository.insertFromObject(new Course(3, "Learn Hibernate Boot", "Irfan Khan"));
courseJdbcRepository.deleteById(1);
System.out.println(courseJdbcRepository.findById(2));
System.out.println(courseJdbcRepository.findById(3));
}
}
Step 3
package com.in28min.springboot.learnjpaandhibernate.course.jdbc;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import com.in28min.springboot.learnjpaandhibernate.course.Course;
@Repository
public class CourseJdbcRepository {
@Autowired
private JdbcTemplate springjdbcTemplate;
//""" will be known as text block
//(this allows us to retain the formatting for your queries which allow to easy to understand)
private static String INSERT_QUERY=
"""
insert into course (id,name,author)
values(1,'Learn Java', 'khanDev')
""";
private static String INSERT_QUERY_WITH_PARAM=
"""
insert into course (id,name,author)
values(?,?,?)
""";
private static String DELETE_QUERY =
"""
delete from course where id = ?
""";
private static String SELECT_QUERY =
"""
select * from course
where id = ?
""";
public void insert() {
springjdbcTemplate.update(INSERT_QUERY);
}
public void insertFromObject(Course course) {
springjdbcTemplate.update(INSERT_QUERY_WITH_PARAM, course.getId(), course.getName(), course.getAuthor());
}
public void deleteById(long id) {
springjdbcTemplate.update(DELETE_QUERY,id);
}
public Course findById(long id) {
//Resultset => Bean => Raw Mapper =>
return springjdbcTemplate.queryForObject(SELECT_QUERY,
new BeanPropertyRowMapper<>(Course.class), id);
}
}
Comments
Post a Comment