[spring-jdbc] SimpleJdbcTemplate 테스트

현재 Spring 강의를 듣고 있는데..
스프링 jdbc관련해서 몇가지 테스트를 해보았다.

강사가 스프링에서 Simple자가 들어간 API명은 대부분 java5.0이상에서 지원되는거라 한다.
그래서 JdbcTemplate, NamedParameterJdbcTemplate 보다는 SimpleJdbcTemplate에 대한 내용을 테스트 해보았다.

  1. public class JdbcMenuDao implements MenuDao {
  2.     private SimpleJdbcTemplate template;
  3.     private SimpleJdbcInsert templateInsert;
  4.     private OracleSequenceMaxValueIncrementer inc;
  5.     public void setDataSource(DataSource dataSource) {
  6.         this.template = new SimpleJdbcTemplate(dataSource);
  7.         this.templateInsert = new SimpleJdbcInsert(dataSource).withTableName("MENU");
  8.         this.inc = new OracleSequenceMaxValueIncrementer(dataSource, "ID_SEQUENCE");
  9.     }
  10.     // 개별건 처리
  11.     public Menu getMenu(Integer id) {
  12.         return (Menu) template.queryForObject(
  13.                 "SELECT * FROM MENU WHERE MENU_ID=?",
  14.                 ParameterizedBeanPropertyRowMapper.newInstance(Menu.class), id);
  15.     }
  16.     // 리스트 처리
  17.     //Spring2.5에서 SqlParameterSource처리가 가능
  18.     // 여러가지 조건값을 map으로 담아서 처리하면 된다. 가장 유용하게 쓰일거 같은 처리문
  19.     public List<Menu> getMenus(Map paramsMap) {
  20.         MapSqlParameterSource params = new MapSqlParameterSource();
  21.         params.addValues(paramsMap);
  22.         return template.query(
  23.                 "SELECT * FROM MENU WHERE MENU_NAME like :menu_name",
  24.                 ParameterizedBeanPropertyRowMapper.newInstance(Menu.class),
  25.                 params);
  26.     }
  27. //일반적인 저장
  28.     public int save(final Menu menu) {
  29.         return template
  30.                 .update(
  31.                         "INSERT INTO MENU(MENU_ID, MENU_NAME, MENU_PRICE) VALUES(:menuId, :menuName, :menuPrice)",
  32.                         new BeanPropertySqlParameterSource(menu));
  33.     }
  34. // set메쏘드에서 정의한 SimpleJdbcInsert를 이용한 저장
  35. //쿼리 문이 없어졌다.
  36. //내가 이렇게 갈수 알았지..
  37.     public int save2(final Menu menu) {
  38.         //자동시퀀스 값 가져오기
  39.         //set메쏘드에서 정의
  40.         menu.setMenuId(inc.nextIntValue());
  41.         Map<String, Object> parameters = new HashMap<String, Object>();
  42.         parameters.put("menu_id", menu.getMenuId());
  43.         parameters.put("menu_name", menu.getMenuName());
  44.         parameters.put("menu_price", menu.getMenuPrice());
  45.         // Number menuId = templateInsert.executeAndReturnKey(parameters);
  46.         // menu.setMenuId(menuId.intValue());
  47.         return templateInsert.execute(parameters);
  48.     }   
  49. //또다른 방법
  50.     public int save3(final Menu menu) {
  51.         SqlParameterSource parameters = new MapSqlParameterSource()
  52.         .addValue("menu_id", menu.getMenuId())
  53.         .addValue("menu_name", menu.getMenuName())
  54.         .addValue("menu_price", menu.getMenuPrice());
  55.         return templateInsert.execute(parameters);
  56.     }
  57. // 모든 리스트 가져오기
  58.     public List<Menu> getAllMenu() {
  59.         return template.query("SELECT * FROM Menu",
  60.                 ParameterizedBeanPropertyRowMapper.newInstance(Menu.class));
  61.     }
  62. }

간단히 Spring Jdbc에서 많이 쓸만한것들을 테스트 해보았다.
아직 스프링을 공부중이지만..

예전에 쓰던 코드보다 정말 간결해 진걸 느낄수 있었다.

그리고 또한 여기 나온 방법은 여러 방법중 하나일 뿐이고 스프링이라는 기본틀 내에서 다양한 모습의 코드도 있다.

이래서 스프링을 쓰는구나 하는 생각이 들정도이다.

다음은 SimpleJdbcTemplate의 Batch에 대해서 테스트 해봐야겠다.

by skyforce | 2009/09/25 14:34 | [IT] 스터디이야기 | 트랙백 | 덧글(0)

한자 3급 도전

어제 한글어문회에서 주체하는 민간자격증인 한글 3급 시험을 접수를 했다.
시험일은 11월 14일.

살아 오면서 한자에 대한 컴플렉스가 꾸준히 있어서 공부를 해야겠다라고 계속 마음속에 두었지만..
역시 자발적인 공부는 어렵다는걸 다시금 느끼고
시험이라는 고육지책을 다시금 쓰려한다.

예전부터 공부하려고 사놓은 책한권이 있는데 우선 이것부터 달달 외워야겠다.
남은 시간을 계산해 보니 51일이 남아있다.
2달도 남지 않은 시간이다.

열공해야겠다.


by skyforce | 2009/09/24 09:00 | [MY] 일상이야기 | 트랙백 | 덧글(0)

똥을 뒤집어쓴 세랑이..

몸도 피곤하고 할게 있어서 하루 휴가를 냈는데..
모르는 전화번호로 전화가 왔다.

차를 세차를 해야된다라는 말이었다.
좀 쌩뚱맞는 전화 내용때문에 괜한 불안한 느낌이 들었다.
예전에 한번 테러를 당하고 나서 차에 대해서 약간은 예민해 져 있었기 때문이다.

잠깐 나와달라는 말에 불안감을 뒤로하고 차가 주차되어 있는 곳으로 가보니..

이런..
분뇨차가 당당하게 골목길에 주차 되어 있고 여기 저기 물로 청소를 한 흔적이 보였다.
그리고 정화조 아저씨들이 이곳 저곳을 분주하게 다니시면서 호수로 물을 뿌리고 있었다.

정황을 살펴보니 
분뇨차에서 실수로 분료를 빨아 들이는 긴 호수관의 압력을 높게 해서 분뇨가 사방으로 튀었다는 것이다.
그 전선에 당당히 나의 세랑이가 그 모든것을 다 받아내고 말이다.

겉으로 보기에는 아저씨들이 미리 물로 뿌려놔서 그리 심해 보이지는 않았지만..

군데 군데..미쳐 씻겨 내려가지 못한 분뇨의 흔적들이 덕지 덕지 붙어 있었다.

아..
정말 잘 내지도 않는 휴가때 이런일이 발생하다니..상황이 좀 ...

상황을 해결하기 위해서 세차비를 준다고 하는걸 마다하고 그냥 세차를 해다 달라고 했으나, 지금 일을 하고 있어서 복장도 그렇고 세차를 해다 주기는 힘들꺼 같다고 하셔서..그냥..세차비 이만원 받고 말았다.

바로 셀프 세차장으로 달려가서 세차를 했다.
그러나 구석 구석 손길이 들어가기 힘든 곳(사이드미러 유리 안쪽등)은 청소하기가 어려워서 유리창 닦는 워셔액을 왕창 뿌리는 선에서 마무리를 지었다.

하지만 은근히 나는 분뇨의 향기가 아직 남아있다.
며칠간은 이렇게 향기와 함꼐 지내야 될듯하다.

이런 와중에 주위에서 상황을 구경하시던 아저씨가 한말이 생각이 나서 좀 웃음이 나왔다.
내 차 뿐만 아니라 앞에 '야마'라는 술집이 있었는데 그쪽에도 심하게 분뇨가 뿌려졌었다.
그 아저씨 왈.. 저 가게 대박나겠네..똥 뒤집어써서..ㅎㅎ..

사실 그렇게 생각하니 내 차도 아마 오래 탈듯하다.
똥차가 될때 까지 오래 ..ㅎㅎ

참 별이도 많이 당하는..불쌍한..우리 세랑..

by skyforce | 2009/09/23 09:11 | [MY] 일상이야기 | 트랙백 | 덧글(2)

눈의 피로를 풀어주는 그림

저번주 부터 이상하게 눈이 피로하다.
혹 병원을 한번 가 봐야 된나 하는 생각까지 든다.

종합적으로 몸상태를 보니.
기침과 콧물이 쫌쫌 나올때 눈의 피로도 극심히 온다는 것을 알았다.

그래서 네이버에 찾아 보니 눈의 피로를 풀어주는 그림이 있어서 ..

이것은 눈의 시력을 보완해주는 0.5mm의 특수한 색채가

들어간 그림으로써 2005년 6월 15일

독일 DaeeSert 라는 사람이 만들었습니다.

우리눈의 내안근을 조절 하지않고 초점을 풀어주어 눈을 쉬게 만들어주는

ARK의 운무방법과 같은 이치로 눈의 피로가 풀립니다.

그냥 무심코 쳐다보고 있으면 눈이 편해집니다.


좀 보고 있으니 느낌이 눈의 피로가 풀리는것 같기도 하다.

by skyforce | 2009/09/21 15:22 | [MY] 일상이야기 | 트랙백 | 덧글(0)

금초를 하고나서.

일요일에 금초를 하러갔다.
작은아버지랑 같이 가기로 되어 있었지만..
작은아버지가 전날 과음을 하셔서..

어쩔수 없이 동생과 둘이 갔다왔다.
1년에 한번 가는..그나마 요즘에서야..가는 음성.

어린시절 아니 지금도 나의 마음의 고향이다.
사실 친척, 혈연등..
이런것에 별로 관심, 신경을 쓰지 않고 살아왔지만..
금초를 가는 날은..
내가 일상에서 살고 있는곳과는 상당히 이질적인 느낌을 받는다.

약간은 변했지만 그래도 어린시절 모양을 상당부분 유지하고 있는 시골마을과 사람들..
어찌보면 그런 마음의 고향을 현실로 받아들이지 않으려고 난 그동안 음성을 찾지 않았나 싶다.

하지만 이런 생각을 하기 전에 나도 혈연관계에서 어떤 역할을 해야될 위치가 된거 같다.

세상볼날이 몇달 남지 않은 우주에게도 이런 마음의 고향이 될만한 장소와 시간을 만들어 주고 싶다.


by skyforce | 2009/09/21 10:19 | [MY] 일상이야기 | 트랙백 | 덧글(0)

◀ 이전 페이지 다음 페이지 ▶