์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ
์๊ฐ์ด ํ๋ฌ์ UI(์น)์ ๊ด๋ จ๋ ๋ถ๋ถ์ด ๋ณํ๊ณ , ๋ฐ์ดํฐ ์ ์ฅ ๊ธฐ์ ์ ๋ค๋ฅธ ๊ธฐ์ ๋ก ๋ณ๊ฒฝํด๋,
๋น์ฆ๋์ค ๋ก์ง์ ์ต๋ํ ๋ณ๊ฒฝ์์ด ์ ์ง๋์ด์ผ ํ๋ค.
์ด๋ ๊ฒ ํ๋ ค๋ฉด ์๋น์ค ๊ณ์ธต์ ํน์ ๊ธฐ์ ์ ์ข
์์ ์ด์ง ์๊ฒ ๊ฐ๋ฐํด์ผ ํ๋ค.
์ด๋ ๊ฒ ๊ณ์ธต์ ๋๋ ์ด์ ๋ ์๋น์ค ๊ณ์ธต์ ์ต๋ํ ์์ํ๊ฒ ์ ์งํ๊ธฐ ์ํ ๋ชฉ์ ์ด ํฌ๋ค.
์๋ฅผ ๋ค์ด์ JDBC๋ฅผ ์ฌ์ฉํ๋ค๊ฐ JPA ๋ก ๋ณ๊ฒฝํด๋ ์๋น์ค ๊ณ์ธต์ ๋ณ๊ฒฝํ์ง ์์๋ ๋๋ค.
๋ฌผ๋ก ์๋น์ค ๊ณ์ธต์์ ๋ฐ์ดํฐ ์ ๊ทผ ๊ณ์ธต์ ์ง์ ์ ๊ทผํ๋ ๊ฒ์ด ์๋๋ผ,
์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๊ณ ์๋น์ค ๊ณ์ธต์ ์ด ์ธํฐํ์ด์ค์ ์์กดํ๋ ๊ฒ์ด ์ข๋ค.
๊ทธ๋์ผ ์๋น์ค ์ฝ๋์ ๋ณ๊ฒฝ ์์ด JdbcRepository ๋ฅผ JpaRepository ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
์ ๋ฆฌํ์๋ฉด ์๋น์ค ๊ณ์ธต์ ๊ฐ๊ธ์ ๋น์ฆ๋์ค ๋ก์ง๋ง ๊ตฌํํ๊ณ ํน์ ๊ตฌํ ๊ธฐ์ ์ ์ง์ ์์กดํด์๋ ์๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ํฅํ ๊ตฌํ ๊ธฐ์ ์ด ๋ณ๊ฒฝ๋ ๋ ๋ณ๊ฒฝ์ ์ํฅ ๋ฒ์๋ฅผ ์ต์ํ ํ ์ ์๋ค.
ํธ๋์ญ์ ์ ์ ์ฉํ MemberServiceV2 ์ฝ๋
public void accountTransfer(String fromId, String toId, int money) throws
SQLException {
Connection con = dataSource.getConnection();
try {
con.setAutoCommit(false); //ํธ๋์ญ์
์์ //๋น์ฆ๋์ค ๋ก์ง
bizLogic(con, fromId, toId, money); con.commit(); //์ฑ๊ณต์ ์ปค๋ฐ
} catch (Exception e) { con.rollback(); //์คํจ์ ๋กค๋ฐฑ
throw new IllegalStateException(e);
} finally {
release(con);
}
}
๋ฌธ์ ์ ๋ค
javax.sql.DataSource , java.sql.Connection , java.sql.SQLException
ํธ๋์ญ์ ์ ์ฌ์ฉํ๊ธฐ ์ํด JDBC ๊ธฐ์ ์ ์์กดํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๋น์ฆ๋์ค ๋ก์ง๋ณด๋ค JDBC๋ฅผ ์ฌ์ฉํด์ ํธ๋์ญ์
์ ์ฒ๋ฆฌํ๋ ์ฝ๋๊ฐ ๋ ๋ง๋ค.
๊ฐ์ ํธ๋์ญ์
์ ์ ์งํ๊ธฐ ์ํด ์ปค๋ฅ์
์ ํ๋ผ๋ฏธํฐ๋ก ๋๊ฒจ์ผ ํ๋ค.
์ ์ฌํ ์ฝ๋์ ๋ฐ๋ณต์ด ๋๋ฌด ๋ง๋ค. / try , catch , finally ...
์คํ๋ง์ ์๋น์ค ๊ณ์ธต์ ์์ํ๊ฒ ์ ์งํ๋ฉด์, ์ง๊ธ๊น์ง ์ด์ผ๊ธฐํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ ์ ์๋ ๋ค์ํ ๋ฐฉ๋ฒ๊ณผ ๊ธฐ์ ๋ค์ ์ ๊ณตํ๋ค.
ํธ๋์ญ์ ์ถ์ํ
'Spring > Spring DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์คํ๋ง DB 1ํธ] - 9. ํธ๋์ญ์ ํ ํ๋ฆฟ (0) | 2023.03.25 |
---|---|
[์คํ๋ง DB 1ํธ] - 8. ํธ๋์ญ์ ์ถ์ํ (2) | 2023.03.24 |
[์คํ๋ง DB 1ํธ] - 6. DB ๋ฝ (0) | 2023.03.19 |
[์คํ๋ง DB 1ํธ] - 5. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๊ตฌ์กฐ์ DB ์ธ์ (0) | 2023.03.15 |
[์คํ๋ง DB 1ํธ] - 4. ํธ๋์ญ์ (0) | 2023.03.15 |