Spring/Spring Boot

JDBC활용하여 데이터 입력, 삭제, 조회

hoonssss 2023. 8. 27. 22:37
반응형
SMALL
package com.in28minutes.springboot.learnjpaandhidernate.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 org.springframework.web.bind.annotation.RequestMapping;
import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;
import com.in28minutes.springboot.learnjpaandhidernate.course.Course;

@Repository
public class CourseJdbcRepository {
	
	@Autowired	
	private JdbcTemplate springJdbcTemplate;
	
	private static String INSERT_QUERY = 
			"""
			insert into course(id, name, author)
			values(?, ?, ?)
			""";
	public void insert(Course course) {
		springJdbcTemplate.update(INSERT_QUERY, course.getId(), course.getName(), course.getAuthor());
	}	

	private static String DELETE_QUERY = 
			"""
			delete
			from course
			where id = ?
			""";	
    public void deleteById(long id) {
		springJdbcTemplate.update(DELETE_QUERY, id);
	}

	private static String SELECT_QUERY = 
			"""
			select * 
			from course
			where id = ?
			""";
	public Course findById(long id) {
		return springJdbcTemplate.queryForObject(SELECT_QUERY, new BeanPropertyRowMapper<>(Course.class), id);
	}
}

 

package com.in28minutes.springboot.learnjpaandhidernate.course.jdbc;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import com.in28minutes.springboot.learnjpaandhidernate.course.Course;

@Component
public class CoursejdbcCommandLineRunner implements CommandLineRunner{
	
	@Autowired
	private CourseJdbcRepository repository;
	
	@Override
	public void run(String... args) throws Exception {
		repository.insert(new Course(1,"Learn AWS NOW!", "in28minutes"));
		repository.insert(new Course(2,"Learn Azure NOW!", "in28minutes"));
		repository.insert(new Course(3,"JH","in28minutes"));
		
		repository.deleteById(1);
		
		System.out.println(repository.findById(2));
		System.out.println(repository.findById(3));
		
	}

}
package com.in28minutes.springboot.learnjpaandhidernate.course;

public class Course {
	private long id;
	private String name;
	private String author;
	
	public Course() {
		
	}
	
	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 + "]";
	}
}
반응형
LIST