Sprint Data JdbcTemplate 작업
package cn.coreqi.springaction.repository.Impl;
import cn.coreqi.springaction.entity.User;
import cn.coreqi.springaction.repository.TestRepository;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.core.PreparedStatementCreatorFactory;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;
import javax.annotation.Resource;
import java.sql.Types;
import java.util.Arrays;
public class JdbcTestRepositoryImpl implements TestRepository {
@Resource
private JdbcTemplate jdbcTemplate;
/**
*
* @param user
* @return
*/
@Override
public Long save(User user) {
PreparedStatementCreator psc = new PreparedStatementCreatorFactory(
"insert into t_user(userName,passWord,mobile) values (?,?,?)",
Types.VARCHAR,Types.VARCHAR,Types.VARCHAR
).newPreparedStatementCreator(
Arrays.asList(
"fanqi",
"coreqi",
"13800138000"
)
);
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(psc,keyHolder);
return keyHolder.getKey().longValue();
}
}
2. 새 데이터를 추가한 후 새 데이터 키로 돌아가기(SimpleJdbcInsert)
새 데이터의 키 ID를 얻기 위해서는 번거로운 Prepared Statement Creator를 사용해야 합니다. SimpleJdbcInsert를 도입하여 SimpleJdbcInsert가 JdbcTemplate를 포장함으로써 데이터를 표에 쉽게 삽입할 수 있습니다.
package cn.coreqi.springaction.repository.Impl;
import cn.coreqi.springaction.entity.User;
import cn.coreqi.springaction.repository.TestRepository;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
import java.util.Map;
public class JdbcTestRepositoryImpl implements TestRepository {
private SimpleJdbcInsert userInserter;
private ObjectMapper objectMapper;
@Autowired
public JdbcTestRepositoryImpl(JdbcTemplate jdbcTemplate){
this.userInserter = new SimpleJdbcInsert(jdbcTemplate)
.withTableName("t_user")
.usingGeneratedKeyColumns("id");
this.objectMapper = new ObjectMapper();
}
/**
*
* @param user
* @return
*/
@Override
public Long save(User user) {
Map values = objectMapper.convertValue(user,Map.class);
Long userId = userInserter.executeAndReturnKey(values).longValue();
return userId;
}
}
SimpleJdbcInsert는 두 가지 유용한 방법으로 데이터 삽입 작업을 수행할 수 있습니다:execute () 와excuteAndReturnKey ().이들은 모두 맵을 매개 변수로 받아들였는데, 맵의 키는 테이블에 데이터를 삽입할 열의 명과 맵의 Value는 열에 삽입할 실제 값에 대응했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.