์ž๋Š” ์”จ์•—
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • ๐Ÿฃ ๊ธฐ์ดˆ ๊ฐœ๋…
    • ๐Ÿ“Ž ์œ ํŠœ๋ธŒ
    • ๐Ÿ’พ ์กฐ๊ฐ๋ชจ์Œ
    • ๐Ÿ‘ฉ‍๐Ÿ’ป Error
    • โ„ React
    • ๐ŸฅPython
    • ๐Ÿ€ Spring
    • ๐Ÿฅž JS
    • ๐Ÿ‹ Docker
    • ๐Ÿงญ WSO2
    • ๐Ÿง Linux
    • ๐Ÿ”— SQL
    • ๐Ÿข C#
    • ๐Ÿ“‘ ์ฝ์„๊ฑฐ๋ฆฌ
    • ๐Ÿ‘€์งˆ๋ฌธ๋“ค
    • ๐Ÿ‘ฉ‍๐Ÿ’ป ๊ตญ๋น„ ์ˆ˜์—…
      • Java ์ž๋ฐ”
      • Oracle ์˜ค๋ผํด
      • JDBC
      • HTML & CSS
      • JavaScript
      • JSP
      • Servlet
      • Spring
      • MyBatis
    • ๐Ÿ“• ๊ฐœ๋ฐœ ํ˜ผ๊ณต
      • ์ž๋ฐ”์˜ ์ •์„
      • ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ
hELLO ยท Designed By ์ •์ƒ์šฐ.
์ž๋Š” ์”จ์•—

๐ŸŒฑ

0202 ๊ตญ๋น„ ์ˆ˜์—… JDBC ์ฟผ๋ฆฌ๋ฌธ ์ƒ์„ฑ๊ฐ์ฒด DAO VO Service Statement ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ CRUD (insert update delete select)
๐Ÿ‘ฉ‍๐Ÿ’ป ๊ตญ๋น„ ์ˆ˜์—…/JDBC

0202 ๊ตญ๋น„ ์ˆ˜์—… JDBC ์ฟผ๋ฆฌ๋ฌธ ์ƒ์„ฑ๊ฐ์ฒด DAO VO Service Statement ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ CRUD (insert update delete select)

2023. 2. 5. 21:52

*์ฟผ๋ฆฌ๋ฌธ ์ƒ์„ฑ๊ฐ์ฒด

  - ์ž‘์„ฑ๋œ ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์–ป๋Š” ์ผ์„ ์ •์˜ํ•œ interface๋“ค


*Statement

 - ๊ฐ์ฒด๊ฐ€ ์‹คํ–‰ํ•  ์ฟผ๋ฆฌ๋ฌธ์„ ์•Œ์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ๋กœ ์–ป์–ด์ง (์–ป์–ด์ง€๋Š” ๋‹น์‹œ์— ์ฟผ๋ฆฌ๋ฌธ์„ ๋ชจ๋ฆ„)
    Statement stmt=con.createStatement();

   ์–ป์–ด์ง€๋Š” ๋‹น์‹œ์— ์ฟผ๋ฆฌ๋ฌธ์— ๋Œ€ํ•œ ์ •๋ณด x


 - ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰(executeXxx(“์ฟผ๋ฆฌ๋ฌธ”))ํ•  ๋•Œ ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰
 - ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฌธ์ด๋”๋ผ๋„ ๋งค๋ฒˆ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰๋จ  
   (์ฟผ๋ฆฌ๋ฌธ์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰๋  ๋•Œ ํšจ์œจ์ด ๋–จ์–ด์ง)
 - SQLInjection๊ณต๊ฒฉ์— ์ทจ์•ฝ,๋ณด์•ˆ ์•ฝ์  (์™ธ๋ถ€์—์„œ ์ฟผ๋ฆฌ๋ฌธ์„ ์˜ˆ์ƒํ•˜์—ฌ ์กฐ์ž‘ํ•  ์ฟผ๋ฆฌ๋ฌธ์„ ๋„ฃ๋Š” ๊ณต๊ฒฉ)

 


*PreparedStatement

 -๊ฐ์ฒด๊ฐ€ ์ฟผ๋ฆฌ๋ฌธ์ด ๋“ค์–ด๊ฐ„ ์ƒํƒœ๋กœ ์–ป์–ด์ง (์‹คํ–‰ํ•  ์ฟผ๋ฆฌ๋ฌธ์„ ์•Œ๊ณ  ์žˆ์Œ)
  PreparedStatement pstmt=con.prepareStatement(“์ฟผ๋ฆฌ๋ฌธ”);
 -์ž…๋ ฅ ๊ฐ’์„ bind๋ณ€์ˆ˜(?)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜์ค‘์— ๋„ฃ์Œ
 -๊ฐ™์€ ์ฟผ๋ฆฌ๋ฌธ์€ ํ•œ ๋ฒˆ๋งŒ ์ƒ์„ฑ๋˜๊ณ , ๊ฐ’๋งŒ ๋‹ค๋ฅด๊ฒŒ ๋“ค์–ด๊ฐ€์„œ ์‹คํ–‰๋จ
  (์ฟผ๋ฆฌ๋ฌธ์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰๋  ๋•Œ ํšจ์œจ์ด ์ข‹์Œ)
 -SQLInjection๊ณต๊ฒฉ์— ์•ˆ์ „

 

*CallableStatement 

 - Procedure๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณต๋˜๋Š” ๊ฐ์ฒด
  CallableStatement cstmt=con.prepareCall(“ { call ํ”„๋กœ์‹œ์ €๋ช…(๋ฐ”์ธ๋“œ๋ณ€์ˆ˜,, ) }”);
 - ๋ฐ”์ธ๋“œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉ (PreparedStatement์˜ ์ž์‹)
 - Types ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ out parameter๋ฅผ ๋“ฑ๋ก ์‚ฌ์šฉ


*Statement ์‚ฌ์šฉ 

- Statement ๊ฐ์ฒด ์–ป๊ธฐ

  Statement stmt=con.createStatement(); 

 - ์ฟผ๋ฆฌ๋ฌธ์— ๋”ฐ๋ผ execute(), executeUpdate(), executeQuery() method๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ฒ˜๋ฆฌ

  • DBMS๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ฟผ๋ฆฌ๋ฌธ:
    >DDL (create, drop, alter, truncate) : execute()๋กœ ์‹คํ–‰
    >DML ์ค‘ (insert, update, delete) : executeUpdate()๋กœ ์‹คํ–‰

  • DBMS๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” ์ฟผ๋ฆฌ๋ฌธ:
    DML ์ค‘ (select) : executeQuery()๋กœ ์‹คํ–‰

*CRUD

  •   Create  : create, insert 
  •   Read    : select
  •   Update : update, alter, commit, rollback, grant,revoke
  •   Delete  : delete, drop, truncate

 

<create>   

String sql=“create table test (num number, name varchar2(10) ) ”; 

   boolean flag=stmt.execute( sql );  //์ฟผ๋ฆฌ๋ฌธ์ด ์‹คํ–‰ ๋œ๋‹ค๋ฉด  false, ์ฟผ๋ฆฌ๋ฌธ์ด ์‹คํ–‰ ์‹คํŒจ๋œ๋‹ค๋ฉด Exception ๋ฐœ์ƒ

 

<insert>

String sql=“insert into ,,,”;
  int cnt=stmt.executeUpdate( sql ); //์„ฑ๊ณต – ์ถ”๊ฐ€๋œ ํ–‰ ์ˆ˜, ์‹คํŒจ – Exception

 

<update>
String sql=“update  ,,,”;
  int cnt=stmt.executeUpdate( sql ); //์„ฑ๊ณต – ๋ณ€๊ฒฝ๋œ ํ–‰ ์ˆ˜, ์‹คํŒจ – Exception

 

<select>
String sql=“select ,,,”;
  ResultSet rs=stmt.executeQuery( sql ); //์„ฑ๊ณต- CURSOR ์ œ์–ด๊ถŒ(ResultSet), ์‹คํŒจ - Exception


*Statement ์‚ฌ์šฉ 

  •   DAO(Data Access Object) : DBMS ์ž‘์—…๋งŒ์„ ์ •์˜ํ•œ ํด๋ž˜์Šค (์ฟผ๋ฆฌ๋ฌธ์„ ์ €์žฅ, ์ฟผ๋ฆฌ๋ฌธ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์˜ด)

  •   VO(Value Object) : ๊ฐ’์„ ์ €์žฅํ•œ ๊ฐ์ฒด (๊ฐ’์„ ์ €์žฅํ•˜์—ฌ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• )
        ํ˜น์€ DTO(Data Transfer Object) : ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด

  •  Service : ์—…๋ฌด๋กœ์ง(business logic)์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“œ๋Š” ๊ฐ์ฒด

*Statement ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ CRUD

 

 

  • VO: ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๋‹ค๋ฅธ ํด๋ž˜์Šค์— ์ „๋‹ฌํ•  ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฐ์ฒด
  • DAO: ์ฟผ๋ฆฌ๋ฌธ์„ ์ •์˜ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด
  • Service: ์—…๋ฌด ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒด

 


JVM DBMS

<DB์—ฐ๋™>
1. ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ
Class.forName("oracle.jdbc.OracleDriver");


2. ๋กœ๋”ฉ๋œ ๋“œ๋ผ์ด๋ฒ„๋กœ DBMS์™€์˜ ์—ฐ๊ฒฐ ์–ป๊ธฐ
String url="jdbc:oracle:thin@localhost:1521:orcl";
String id="scott";
String pass = "tiger";

Connection con = DriverManager.getConnection(url,id,pass);


3. (Connection์œผ๋กœ๋ถ€ํ„ฐ) ์ฟผ๋ฆฌ๋ฌธ ์ƒ์„ฑ๊ฐ์ฒด ์–ป๊ธฐ
Statement stmt = con.createStatement();


4. ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑ, ์‹คํ–‰
String sql  = "insert into ํ…Œ์ด๋ธ”๋ช…(์ปฌ๋Ÿผ๋ช…,,) values(๊ฐ’,,)";

Statement: ์ฟผ๋ฆฌ๋ฌธ์„ ์ƒ์„ฑ,์‹คํ–‰ํ•˜๋Š” ๊ฐ์ฒด
int rowCnt = stmt.executeUpdate(  sql๋ฌธ  ) ;
//๋ช‡ ๊ฐœ์˜ ํ–‰์ด ์—…๋ฐ์ดํŠธ(์ถ”๊ฐ€,๋ณ€๊ฒฝ,์‚ญ์ œ)๋˜์—ˆ๋Š”์ง€ ์นด์šดํŠธ


5.์—ฐ๊ฒฐ ๋Š๊ธฐ
statement์™€ connection๋งŒ, driverManger๋Š” ์—†์Œ
stmt.close();
con.close();
3. ๋“œ๋ผ์ด๋ฒ„๋งค๋‹ˆ์ €๊ฐ€ url,id,pass๋กœ DB์— ๊ฐ€์„œ ์ธ์ฆ๋ฐ›์Œ
์„ฑ๊ณตํ•˜๋ฉด Connection์ด ๋‚˜์˜ด 

4. ์ฟผ๋ฆฌ๊ฐ€ statement๋ฅผ ํƒ€๊ณ  ๋“ค์–ด๊ฐ€์„œ ์—ฐ๊ฒฐ๋œ DBMS์˜ ํ…Œ์ด๋ธ”์— insert,update,delege๋˜๊ณ , ํ–‰์˜ ์ˆ˜๊ฐ€ ๋‚˜์˜ด 


*insert

 - ํ•œ ํ–‰ ์ถ”๊ฐ€, subquery๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์กฐํšŒ๋œ ์—ฌ๋Ÿฌ ํ–‰์ด ์ถ”๊ฐ€

( ๊ฒฐ๊ณผ : ์ถ”๊ฐ€ ์„ฑ๊ณต(0~nํ–‰) ๋˜๋Š” ์˜ˆ์™ธ)


์ถ”๊ฐ€์‹คํŒจ : 
 1. ์ œ์•ฝ์‚ฌํ•ญ ์œ„๋ฐฐ
 2. ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํ˜•์„ ์ถ”๊ฐ€ : ์ฟผ๋ฆฌ๋ฌธ์„ ์ž˜๋ชป ๋งŒ๋“  ๊ฒƒ
     empno <- ename ์ž…๋ ฅ
 3. ์ž…๋ ฅ ๋ฐ์ดํ„ฐํ˜•์˜ ํฌ๊ธฐ๊ฐ€ ๋งž์ง€ ์•Š์Œ

 

 

String insertQuery=“insert ,,, “;

 //์ฟผ๋ฆฌ ์‹คํ–‰
try{
 Statement stmt=con.createStatement();


  int rowCnt=stmt.executeUpdate( ์ฟผ๋ฆฌ๋ฌธ );

ํ•œ ํ–‰ insert ๋˜๋Š” ์ฟผ๋ฆฌ๋ฌธ : 1์ด ๋ฆฌํ„ด๋˜๊ฑฐ๋‚˜  ์˜ˆ์™ธ๋ฐœ์ƒ
์—ฌ๋Ÿฌ ํ–‰ insert ๋˜๋Š” ์ฟผ๋ฆฌ๋ฌธ : 0~n์ด ๋ฆฌํ„ด๋˜๊ฑฐ๋‚˜ ์˜ˆ์™ธ๋ฐœ์ƒ


 }catch( SQLException se ){
     int errCode=se.getErrorCode(); // DBMS์—์„œ ์ œ๊ณตํ•˜๋Š” ์—๋Ÿฌ์ฝ”๋“œ๊ฐ€ ๋ฆฌํ„ด๋จ
     if( errCode == ๋น„๊ต) {
      ์ƒํ™ฉ์— ๋งž๋Š” ์˜ˆ์™ธ๋ฅผ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณต
     }//end if
  }//end catch

*update

-0~n๊ฐœ์˜ ํ–‰์ด ๋ณ€๊ฒฝ๋จ, ๋ณ€๊ฒฝ๋œ ํ–‰์ˆ˜๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•จ

  String updateQuery=“update ,,, where ์ปฌ๋Ÿผ๋ช…=๊ธฐ์ค€๊ฐ’”;
  int cnt=stmt.executeUpdate( updateQuery );

where์ ˆ์— ๋ถ€ํ•ฉ๋˜๋Š” ๋ณ€๊ฒฝ๋œ ํ–‰์˜ ์ˆ˜ : 0~n์ด ๋ฆฌํ„ด๋˜๊ฑฐ๋‚˜((์ดํ–‰ํ•จ์ˆ˜ ์ข…์†)) ์˜ˆ์™ธ๋ฐœ์ƒ / ์™„์ „ํ•จ์ˆ˜ ์ข…์†์ด๋ฉด 0~1๊ฐœ
0 – ๋ณ€๊ฒฝ์กฐ๊ฑด์— ๋ถ€ํ•ฉ๋˜๋Š” ํ–‰ ์—†์Œ
n – ๋ณ€๊ฒฝ์กฐ๊ฑด์— ๋ถ€ํ•ฉ๋˜๋Š” ํ–‰์ด ์—ฌ๋Ÿฌ ๊ฐœ
Exception – ์ฟผ๋ฆฌ๋ฌธ์ด ์ž˜๋ชป ์ž‘์„ฑ๋˜์—ˆ๊ฑฐ๋‚˜, DB์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ

 

*delete

 -0~n๊ฐœ์˜ ํ–‰์ด ์‚ญ์ œ๋จ, ์‚ญ์ œ๋œ ํ–‰์ˆ˜๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ ํ•„์š”

  String deleteQuery=“delete from ํ…Œ์ด๋ธ”๋ช… where ์ปฌ๋Ÿผ๋ช…=๊ธฐ์ค€๊ฐ’”;
   int cnt=stmt.executeUpdate( deleteQuery );

 

where์ ˆ์— ๋ถ€ํ•ฉ๋˜๋Š” ๋ณ€๊ฒฝ๋œ ํ–‰์˜ ์ˆ˜ : 0~n์ด ๋ฆฌํ„ด๋˜๊ฑฐ๋‚˜ ์˜ˆ์™ธ๋ฐœ์ƒ
0 – ๋ณ€๊ฒฝ์กฐ๊ฑด์— ๋ถ€ํ•ฉ๋˜๋Š” ํ–‰ ์—†์Œ
n – ๋ณ€๊ฒฝ์กฐ๊ฑด์— ๋ถ€ํ•ฉ๋˜๋Š” ํ–‰์ด ์—ฌ๋Ÿฌ ๊ฐœ
Exception – ์ฟผ๋ฆฌ๋ฌธ์ด ์ž˜๋ชป ์ž‘์„ฑ๋˜์—ˆ๊ฑฐ๋‚˜, DB์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ

 


*Select

- java.sql.ResultSet์„ ์‚ฌ์šฉ  

-์กฐํšŒ๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” (์ปค์„œ์˜) ์ œ์–ด๊ถŒ์„ ๋ฐ›์Œ – cursor์˜ ์ œ์–ด๊ถŒ   cf.next() ํฌ์ธํ„ฐ๋ฅผ ์›€์ง์ž„

-DBMS์˜ ๋ฐ์ดํ„ฐ ํ˜•์„ Java์˜ ๋ฐ์ดํ„ฐ ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ผ ( varchar2 > String / number >int, double)

 

   
1. ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ
2. ๋“œ๋ผ์ด๋ฒ„ ๋งค๋‹ˆ์ €๋กœ DB ์—ฐ๊ฒฐ, ์ปค๋„ฅ์…˜ ์–ป๊ธฐ
3. ์ฟผ๋ฆฌ๋ฌธ ์ƒ์„ฑ๊ฐ์ฒด ์–ป๊ธฐ

4. ์ฟผ๋ฆฌ๋ฌธ ์ˆ˜ํ–‰ ํ›„ ๊ฒฐ๊ณผ ๋ฐ›๊ธฐ
String select = "select deptno, dname, loc from dept" ;
ResultSet rs = stmt.executeQuery( select ) ;

5. ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๊ธฐ
// ๋ ˆ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ๋ชจ๋ฅด์ง€๋งŒ, ์žˆ๋‹ค๋ฉด ์žˆ๋Š” ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ
inline view ์ƒ์„ฑ (์กฐํšŒ๊ฒฐ๊ณผ๋Š” DB์— ์ƒ์„ฑ๋จ)
์ž๋ฐ”์—์„œ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด๊ฐ€๋ผ๊ณ  ์ปค์„œ๊ฐ€ ์ƒ์„ฑ๋จ

rs๋Š” ์ธ๋ผ์ธ๋ทฐ ์•ž์— ์กด์žฌํ•˜๋Š” ์ปค์„œ์˜ ์ œ์–ด๊ถŒ์„ ๋ฐ›์•„์˜ด
rs: ํฌ์ธํ„ฐ๋ฅผ ์˜ฎ๊ธฐ๊ณ , ์˜ค๋ผํด ๋ฐ์ดํ„ฐํ˜•์„ ์ž๋ฐ”๋กœ ๋ฐ”๊ฟ”์คŒ


while( rs.next() ) { //ํ˜„์žฌ ์ปค์„œ๊ฐ€ ์กด์žฌํ•˜๋Š” ์œ„์น˜ ๋‹ค์Œ ์ค„์— ๋ ˆ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜๋ฉด true ๋ฐ˜ํ™˜ ํ›„ ์ปค์„œ ์œ„์น˜๋ฅผ ์•„๋ž˜๋กœ ์ด๋™์‹œํ‚ด

rs๋Š” oracle์˜ ๋ฐ์ดํ„ฐํ˜•์„ Java์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝํ•˜๋Š” ์ผ์„ ํ•จ
int deptno = rs.getInt( " deptno " ) ;
// ์˜ค๋ผํด์˜ number > ์ž๋ฐ”์˜ int๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ฐ€์ ธ์˜ด

String dname = rs.getString( "dname" ) ;
//์˜ค๋ผํด์˜ varchar2 >์ž๋ฐ”์˜ String์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜

 }//
 
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ‘ฉโ€๐Ÿ’ป ๊ตญ๋น„ ์ˆ˜์—… > JDBC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

0207 ๊ตญ๋น„ ์ˆ˜์—… JDBC transaction์ฒ˜๋ฆฌ procedure ์ž‘์„ฑ CallableStatement  (0) 2023.02.09
0206 JDBC like ์‚ฌ์šฉ ResultSetMetaData CLOB(Character Large Object) ๋ฐ์ดํ„ฐ ํ˜•์˜ ์‚ฌ์šฉ  (0) 2023.02.06
0203 ๊ตญ๋น„ ์ˆ˜์—… PreparedStatement ์ž‘์—…์ˆœ์„œ bind ๋ณ€์ˆ˜ Singleton Pattern  (0) 2023.02.05
0201 ๊ตญ๋น„ ์ˆ˜์—… JDBC driver DBMS ์ž‘์—…์ˆœ์„œ, DB ์—ฐ๊ฒฐ ์ž‘์—… ์ž๋ฐ” ์ฟผ๋ฆฌ ์‹คํ–‰  (0) 2023.02.05
0201 ๊ตญ๋น„ ์ˆ˜์—… JDBC driver DBMS ์ž‘์—… ์ˆœ์„œ DB ์—ฐ๊ฒฐ ์ž‘์—… ์ž๋ฐ” ์ฟผ๋ฆฌ ์‹คํ–‰  (0) 2023.02.02
    '๐Ÿ‘ฉ‍๐Ÿ’ป ๊ตญ๋น„ ์ˆ˜์—…/JDBC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • 0206 JDBC like ์‚ฌ์šฉ ResultSetMetaData CLOB(Character Large Object) ๋ฐ์ดํ„ฐ ํ˜•์˜ ์‚ฌ์šฉ
    • 0203 ๊ตญ๋น„ ์ˆ˜์—… PreparedStatement ์ž‘์—…์ˆœ์„œ bind ๋ณ€์ˆ˜ Singleton Pattern
    • 0201 ๊ตญ๋น„ ์ˆ˜์—… JDBC driver DBMS ์ž‘์—…์ˆœ์„œ, DB ์—ฐ๊ฒฐ ์ž‘์—… ์ž๋ฐ” ์ฟผ๋ฆฌ ์‹คํ–‰
    • 0201 ๊ตญ๋น„ ์ˆ˜์—… JDBC driver DBMS ์ž‘์—… ์ˆœ์„œ DB ์—ฐ๊ฒฐ ์ž‘์—… ์ž๋ฐ” ์ฟผ๋ฆฌ ์‹คํ–‰

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