[์Šคํ”„๋ง DB 2ํŽธ] - 2. JdbcTemplate - ๋™์  ์ฟผ๋ฆฌ ๋ฌธ์ œ

2023. 4. 7. 22:33ยทSpring/Spring DB

 

 

๋™์  ์ฟผ๋ฆฌ ๋ฌธ์ œ

 

๋™์  ์ฟผ๋ฆฌ๋ž€, ์‹คํ–‰ ์‹œ์ ์— ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์— ๋”ฐ๋ผ ์ฟผ๋ฆฌ๊ฐ€ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒ€์ƒ‰ ์กฐ๊ฑด์ด ์œ ๋™์ ์œผ๋กœ ๋ณ€ํ•˜๋Š” ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋‚˜, ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ JOIN์ด ์ถ”๊ฐ€๋˜๋Š” ์ฟผ๋ฆฌ ๋“ฑ์ด ์ด์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

 

// ๊ฒ€์ƒ‰ ์กฐ๊ฑด์ด ์—†์Œ
select id, item_name, price, quantity from item

//์ƒํ’ˆ๋ช…( itemName )์œผ๋กœ ๊ฒ€์ƒ‰
select id, item_name, price, quantity from item
   where item_name like concat('%',?,'%')

//์ตœ๋Œ€ ๊ฐ€๊ฒฉ( maxPrice )์œผ๋กœ ๊ฒ€์ƒ‰
select id, item_name, price, quantity from item
   where price <= ?

//์ƒํ’ˆ๋ช…( itemName ), ์ตœ๋Œ€ ๊ฐ€๊ฒฉ( maxPrice ) ๋‘˜๋‹ค ๊ฒ€์ƒ‰
select id, item_name, price, quantity from item
   where item_name like concat('%',?,'%')
and price <= ?

 

๊ฒฐ๊ณผ์ ์œผ๋กœ 4๊ฐ€์ง€ ์ƒํ™ฉ์— ๋”ฐ๋ฅธ SQL์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 

์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฐ’์— ๋”ฐ๋ผ์„œ ์‹คํ–‰ํ•˜๋Š” SQL์ด ๋™์ ์œผ๋กœ ๋‹ฌ๋ ค์ ธ์•ผ ํ•œ๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•œ๋‹ค. 

 

 

JdbcTemplate ์œผ๋กœ ๋™์ ์ฟผ๋ฆฌ ์ž‘์„ฑ 

public List<Item> findAll(ItemSearchCond cond) {
    String itemName = cond.getItemName();
    Integer maxPrice = cond.getMaxPrice();

    String sql = "select id, item_name, price, quantity from item";
    // ๋™์  ์ฟผ๋ฆฌ
    if (StringUtils.hasText(itemName) || maxPrice != null) {
        sql += " where";
    }
    boolean andFlag = false;
    List<Object> param = new ArrayList<>();
    if (StringUtils.hasText(itemName)) {
        sql += " item_name like concat('%',?,'%')";
        param.add(itemName);
        andFlag = true;
    }
    if (maxPrice != null) {
        if (andFlag) {
            sql += " and";
        }
        sql += " price <= ?";
        param.add(maxPrice);
    }
    log.info("sql={}", sql);
    return template.query(sql, itemRowMapper(), param.toArray());
}

 

์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” where ๋ฅผ ์•ž์— ๋„ฃ๊ณ  ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” and ๋ฅผ ๋„ฃ์–ด์•ผ ํ•˜๋Š”์ง€ ๋“ฑ์„ ๋ชจ๋‘ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ๊ฐ ์ƒํ™ฉ์— ๋งž์ถ”์–ด ํŒŒ๋ผ๋ฏธํ„ฐ๋„ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 

๋ฌผ๋ก  ์‹ค๋ฌด์—์„œ๋Š” ์ด๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋ณต์žกํ•œ ๋™์  ์ฟผ๋ฆฌ๋“ค์ด ์‚ฌ์šฉ๋œ๋‹ค.

 

 

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

 

JdbcTemplate์—์„œ ๋ฐœ์ƒํ•œ ๋™์  ์ฟผ๋ฆฌ ๋ฌธ์ œ๋ฅผ MyBatis๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๋’ค์—์„œ ๋ฐฐ์›Œ๋ณด๋„๋ก ํ•˜์ž  ~ 

 

 

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-2/dashboard

 

์Šคํ”„๋ง DB 2ํŽธ - ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ํ™œ์šฉ ๊ธฐ์ˆ  - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ DB ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜๊ณ , ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ ์˜ ์›๋ฆฌ์™€ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ , ๋” ๊นŠ์ด์žˆ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค., - ๊ฐ•์˜ ์†Œ๊ฐœ | ์ธ

www.inflearn.com

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Spring > Spring DB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์Šคํ”„๋ง DB 2ํŽธ] - 4. JdbcTemplate - SimpleJdbcInsert  (0) 2023.04.08
[์Šคํ”„๋ง DB 2ํŽธ] - 3. JdbcTemplate - ์ด๋ฆ„ ์ง€์ • ํŒŒ๋ผ๋ฏธํ„ฐ  (0) 2023.04.08
[์Šคํ”„๋ง DB 2ํŽธ] - 1. JdbcTemplate  (0) 2023.04.06
[์Šคํ”„๋ง DB 2ํŽธ] - 0. DTO / DAO  (0) 2023.04.05
[์Šคํ”„๋ง DB 1ํŽธ] - 15. ์Šคํ”„๋ง ์˜ˆ์™ธ ์ถ”์ƒํ™” ์ดํ•ด  (0) 2023.03.31
'Spring/Spring DB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์Šคํ”„๋ง DB 2ํŽธ] - 4. JdbcTemplate - SimpleJdbcInsert
  • [์Šคํ”„๋ง DB 2ํŽธ] - 3. JdbcTemplate - ์ด๋ฆ„ ์ง€์ • ํŒŒ๋ผ๋ฏธํ„ฐ
  • [์Šคํ”„๋ง DB 2ํŽธ] - 1. JdbcTemplate
  • [์Šคํ”„๋ง DB 2ํŽธ] - 0. DTO / DAO
hello_u
hello_u
  • hello_u
    ๐Ÿ˜œ
    hello_u
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ˜œ (345)
      • Hardware (2)
        • BMC (2)
      • Spring (109)
        • Spring ์ž…๋ฌธ (20)
        • Spring ๊ธฐ๋ณธ (27)
        • Spring MVC (18)
        • Spring DB (22)
        • Spring JPA ๊ธฐ๋ณธ (16)
        • Spring JPA ํ™œ์šฉ (6)
      • Develop (27)
        • DB (8)
        • JAVA (4)
        • Web (2)
        • Python (7)
        • OSS (2)
        • Git (2)
        • API (2)
      • Algorithm (155)
        • CodeUp ๊ธฐ์ดˆ (44)
        • ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (64)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (4)
        • SWEA (30)
        • Softeer (10)
        • BOJ (2)
      • CS (9)
        • ์ปดํ“จํ„ฐ์ผ๋ฐ˜ (3)
        • ์šด์˜์ฒด์ œ (3)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
        • ์ •๋ณดํ†ต์‹  (1)
        • ์ž๋ฃŒ๊ตฌ์กฐ (1)
        • ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ (1)
        • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (0)
        • ์ตœ์‹  ๋””์ง€ํ„ธ, ์ผ๋ฐ˜์ƒ์‹ (0)
      • ์ž๊ฒฉ์ฆ (41)
        • ์ •๋ณด๋ณด์•ˆ๊ธฐ์‚ฌ (9)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (22)
        • ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 1๊ธ‰ (3)
        • SQLD (7)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
hello_u
[์Šคํ”„๋ง DB 2ํŽธ] - 2. JdbcTemplate - ๋™์  ์ฟผ๋ฆฌ ๋ฌธ์ œ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”