Database/데이터 접근 기술

Database/데이터 접근 기술

[Java, Spring] 트랜잭션을 적용하는 여러 가지 방법

[JDBC] 트랜잭션 적용 - Connection 직접 이용 JDBC 코드를 직접 짤 때 트랜잭션을 이용하는 방법이다. 비즈니스 로직을 실행할 때, 하나의 커넥션 내에서 동작해야 하므로 메서드 사용 시 connection을 파라미터로 넘겨야 한다. 따라서 서비스 계층, 데이터접근 계층에 모두 Connection을 파라미터로 받아서 이용해야 한다. public void loadLotsOfData(DataList dataList) { String sql = "insert into table values ( /* ... */)"; Connection conn = null; PreparedStatement pstmt = null; try { conn = getConnection(); pstmt = conn.pr..

Database/데이터 접근 기술

[SQL/Mysql, MariaDB] 드라이버 연결

1. JDBC 드라이버 다운 MySQL 드라이버를 공식 웹사이트에서 다운로드한다. 이유는 모르겠지만, MariaDB 사용 시에도 MySQL 드라이버를 사용해야 하는 것 같다. 아래의 공식 사이트에서 다운로드할 수 있다. (공식 사이트) https://dev.mysql.com/downloads/connector/j/ (Window) Select Operating System... Platform Indepentent 선택 아래의 Zip Archive 다운 2. connector. jar 파일 업로드 압축을 풀어서 파일을 열면 아래와 같은 파일, 폴더가 있다. 그중에 mysql-connector-j-8.1.0.jar 파일을 프로젝트 빌드 경로에 추가한다. 프로젝트 아래에 lib(라이브러리) 폴더를 만들고 그..

Database/데이터 접근 기술

[MyBatis] 동적쿼리, 기타 문법

동적 SQL MyBatis를 사용하는 이유는 편리한 동적 SQL 기능 때문이다. 동적 쿼리를 위해 제공되는 기능은 아래와 같다. if choose(when, otherwise) where foreach MyBatis 공식 매뉴얼: https://mybatis.org/mybatis-3/ko/index.html MyBatis 스프링 공식 매뉴얼: https://mybatis.org/spring/ko/index.html if 단순한 if 문이다. if문의 test 조건에 만족하면 해당 SQL문을 추가한다. SELECT * FROM BLOG WHERE state = ‘ACTIVE’ AND title like #{title} choose - when, otherwise 자바의 switch 구문과 비슷하다. swi..

Database/데이터 접근 기술

[MyBatis] 마이바티스 기본 사용법

MyBatis란? MyBatis는 JdbcTemplate이 제공하는 대부분의 기능을 제공한다. 그러나 JdbcTemplate의 문제점 중 하나인 여러 줄의 String 형 sql을 작성해야 한다는 점을 MyBatis를 이용하여 해결할 수 있다. MyBatis는 SQL을 xml에 편리하게 작성할 수 있고, xml 내에서 동적 쿼리를 매우 편리하게 작성할 수 있다. JdbcTemplate은 스프링에 내장된 기능이고, 별도의 설정 없이 사용할 수 있지만, MyBatis는 약간의 설정이 필요하다. 따라서 동적쿼리와 복잡한 쿼리를 많이 사용하는 경우에는 MyBatis를 사용하고, 단순한 쿼리들이 많다면 JdbcTemplate을 사용하는 것이 좋을 것이다. 사용 설정 build.gradle에 MyBatis 의존관계..

Database/데이터 접근 기술

[Jdbc] JdbcTemplate 사용법 및 적용예제

JdbcTemplate이란? JdbcTemplate은 SQL을 직접 사용하여 JDBC를 다루는 편리한 방법 중 하나이다. JdbcTemplate은 JDBC를 직접 사용할 때 발생하던 여러 가지 반복 문제를 해결해 주고, 트랜잭션을 위한 커넥션 동기화와 스프링 예외 변환기 등의 기능을 자동으로 실행해 준다. 장점 JdbcTemplate은 스프링으로 JDBC를 사용할 때 자동으로 포함되는 spring-jdbc 라이브러리에 속해있기 때문에 별도의 복잡한 설정 없이 사용할 수 있다. 템플릿 콜백 패턴을 사용해서 JDBC를 직접 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해 준다. 개발자는 SQL을 작성하고 전달할 파라미터를 정의하여 응답 값을 매핑하기만 하면 된다. 트랜잭션을 위한 커넥션 동기화, 스프링..

Database/데이터 접근 기술

[JDBC] 커넥션 풀, DataSource

데이터베이스 커넥션 획득 과정 1. 애플리케이션에서 DB 드라이버를 통해 커넥션 조회 2. DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 3. DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 정보를 DB에 전달한다. 4. DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성한다. 5. DB는 커넥션 생성이 완료되었다는 응답을 보낸다. 6. DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환한다. 이처럼 커넥션을 생성하는 과정은 복잡하고, 시간이 많이 소모되는 일이다. 또한, 애플리케이션 서버에서도 TCP/IP 커넥션을 새로 생성하기 위해 리소스를 매번 사용해야 한다. 따라서 전반적인 응답속도에 영향을 준다. 이를 해결하기 위해 일정 개수의 커넥션을 미..

Database/데이터 접근 기술

[JDBC] 자바 데이터베이스 표준

이 글에서 설명하는 방법은 현재 직접적으로 사용하는 방법은 아니다. 아래의 과정을 편리하게 라이브러리화 하여 사용한다. 그러나 JAVA의 모든 데이터 접근 기술은 이런 복잡한 과정을 자동화하여 개발자가 이용하기 쉽게 만든 것뿐, 내부에서는 똑같이 동작한다. JDBC 표준 인터페이스 JDBC (Java Database Connectivity ) : 자바에서 데이터베이스에 접근할 수 있도록 하는 자바 API 이다. JDBC는 연결, SQL 전달, 결과 응답의 3가지 기능을 표준 인터페이스로 정의해서 제공한다. Connection : 연결 Statement : SQL 전달 ResultSet : 결과 응답 인터페이스로 제공하는 이유는 여러 가지 DB (MySQL, Oracle 등 ) 마다 조금씩 사용법이 다르기..

HSRyuuu
'Database/데이터 접근 기술' 카테고리의 글 목록