2017-12-06 14 views
-1

이미 다음을 수행하는 MySQL 스키마 뷰가 있습니다. 제 질문은 jdbctemplate을 사용하여 뷰를 호출하는 방법입니다.Spring JDBCTemplate : 스프링 컨트롤러에서 MySQL 스키마 뷰를 호출하는 방법

// insert person into database 
    jdbcTemplate.update(
     "INSERT INTO Person (FirstName, LastName, Address, Phone, City, State, ZipCode) VALUES (?, ?, ?, ?, ?, ?, ?)", 
     person.getFirstName(), person.getLastName(), person.getAddress(), person.getPhone(), person.getCity(), person.getState(), person.getZipCode() 
    ); 

    // get this persons generated id from the DB 
    int personId = jdbcTemplate.queryForObject(
     "SELECT Id FROM Person WHERE FirstName=? AND LastName=?", new Object[]{person.getFirstName(), person.getLastName()}, int.class); 

    // create user account for person 
    jdbcTemplate.update(
     "INSERT INTO User (person_Id, active, username, password) VALUES (?, ?, ?, ?)", 
     personId, 1, username, password 
    ); 

    int userId = jdbcTemplate.queryForObject(
     "SELECT user_id FROM User WHERE username=? AND password=?", new Object[]{username, password}, int.class); 

    // finally add role to user 
    // by default, all users are set to Customer roles. 
    jdbcTemplate.update(
     "INSERT INTO User_role (user_id, role_id) VALUES (?, ?)", 
     userId, Role.CUSTOMER_ROLE 
    ); 
+0

포스트는 해봤 코드를 참조하고 그것으로 특정 문제를 설명합니다. 그래서 당신의 질문에 [Minimal, Complete, and Verifiable example] (https://stackoverflow.com/help/mcve)을 주어야합니다. –

+0

제 질문은 기본적으로 "어떻게 시도합니까?"이후 시도 할 코드가 없습니다. 저의 요점을 좀 더 명확히하기 위해 자세한 내용을 제공했습니다. – Edqu3

답변

0

Views은 데이터를 선택하는 동안 JDBC의 다른 테이블과 마찬가지로 액세스 할 수 있습니다. 그래서, 다음과 같은 것이 우리를 위해 잘 작동합니다.

int personId = jdbcTemplate.queryForObject(
     "SELECT Id FROM Our_View WHERE FirstName=? AND LastName=?", new Object[]{person.getFirstName(), person.getLastName()}, int.class); 

하지만, MySQL의에서 업데이트 가능 및 삽입 가능 뷰를 들어, here