Spring

스프링 부트의 JdbcTemplate 예제

기록만이살길 2020. 6. 17. 21:09
반응형

스프링 부트의 JdbcTemplate 예제

JdbcTemplate은 JDBC 코어 패키지의 중앙 클래스입니다. 일반적인 오류를 처리하지 않고 데이터베이스를 조작 할 수 있습니다. 우리는 과거에 Spring 설정 파일에서 JdbcTemplate을 정의하고 JdbcTemplate을 사용하기 전에 DataSource 설정을 추가해야합니다. 이 튜토리얼에서는 Spring Boot에서 JdbcTemplate을 사용하는 방법을 보여줍니다. 한 줄의 XML을 작성하지 마십시오. web.xml 파일도 없습니다.

초기화 데이터베이스

CREATE TABLE public.tb_user
(
  id SERIAL PRIMARY KEY NOT NULL,
  username VARCHAR(20) NOT NULL,
  comment VARCHAR(500)
)

프로젝트 구조

이 프로젝트에는 xml 파일이 없습니다 (스프링 구성 없음, web.xml 없음)

├─main                                                                       
│  ├─java                                                                              
│  │  └─com
│  │      └─henry 
│  │          └─jdbc 
│  │                  SimpleController.java
│  │ 
│  └─resources 
│          application.properties
│
└─test
    └─java            

프로젝트의 코드

pom 파일의 종속성

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>1.3.2.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>4.2.4.RELEASE</version>
</dependency>
<dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.1-901.jdbc4</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
    <version>1.3.2.RELEASE</version>
</dependency>

application.properties

spring.datasource.url=jdbc:postgresql://localhost:5432/demo
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.datasource.driver-class-name=org.postgresql.Driver

application.properties또는 다른 특성 파일에서 고유 한 특성을 정의 하고 값을 init로 가져올 수 DataSource있습니다. ( Spring Boot 에서 값을 읽는 방법을 모르 십니까? 여기를 클릭 하십시오 . Spring의 속성에서 값을 읽는 방법을 알고 싶으십니까 ? 여기를 클릭 하십시오 )

SimpleController

@RestController
@EnableAutoConfiguration
public class SimpleController {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @RequestMapping(value = "/add", method = RequestMethod.GET)
    public String add() {
        jdbcTemplate.update("INSERT INTO tb_user (username, comment) VALUES (?,?)", new Object[]{"username1", "comment1"});
        return "insert completes!";
    }

    @RequestMapping(value = "/delete", method = RequestMethod.GET)
    public String delete() {
        jdbcTemplate.update("DELETE FROM tb_user where id>?", 100);
        return "delete completes!";
    }

    @RequestMapping(value = "/update", method = RequestMethod.GET)
    public String update() {
        jdbcTemplate.update("UPDATE tb_user SET username=?, comment=? ", new PreparedStatementSetter() {
            public void setValues(PreparedStatement ps) throws SQLException {
                ps.setString(1, "update_username");
                ps.setString(2, "update_comment");
            }
        });
        return "update completes!";
    }

    @RequestMapping(value = "/query", method = RequestMethod.GET)
    public String query() {
        String name = jdbcTemplate.queryForObject("SELECT username FROM tb_user where id = ?", String.class, 100);
        return "username " + name;
    }

    public static void main(String[] args) {
        SpringApplication.run(SimpleController.class, args);
    }

기본 방법을 실행하고 SimpleController다른 결과에 액세스하여 실행 결과를 볼 수 있습니다. "의 기본 키를 어떻게 알 수 있습니까? application.properties" 여기서 볼 수 있습니다 . 이것은입니다 convention over configuration. xml 구성 파일이 없으면 코드가 적은 일이 줄어 듭니다.

반응형