SSAFY11th-book-study / book-study

SSAFY 11기 6반의 '토비의 스프링 스터디'
0 stars 0 forks source link

[3.5.2] add() 메소드에 콜백 재활용 적용 #35

Open hj-k66 opened 6 months ago

hj-k66 commented 6 months ago

249p에서 deleteAll()메소드를 콜백 재활용을 적용하여 바꿀 수 있다 합니다. add() 메소드의 콜백에서 SQL 문장과 함께 PreparedStatement에 바인딩될 파라미터를 가변인자로 정의해 사용한다는데 어떻게 구현하는 건지 잘 모르겠습니다.

다들 어떻게 하셨는지 궁금합니다!

limjongheok commented 6 months ago

add() 메서드는

 ps.setString(1, user.getId());
 ps.setString(2, user.getName());
 ps.setString(3, user.getPassword());

다음과 같이 PreparedStatement 에 바인딩될 파라미터들이 개수가 정해져 있지 않으니

 public void add(String query, Object... objs) throws  SQLException {
             StatementStrategy st = new StatementStrategy(){
            @Override
            public PreparedStatement makePreparedStatement(Connection c) throws SQLException {
                PreparedStatement ps = c.prepareStatement(query);
               int count = 1;
              for(Object obj : objs){
                   ps.setString(count++,obj);
                }
                return ps;
            }
        });
        this.jdbcContext.workWithStatementStrategy(st);
    }

다음과 같이 가변인자를 사용해서 적용해라 이 말 아닐까요??

hj-k66 commented 6 months ago