SlideShare a Scribd company logo
1 of 26
Spring Framework & MyBatis
스프링 프레임워크 & 마이바티스 강의
탑크리에듀 교육센터
CONTENTS
4. Spring JDBC
4.1 기존 JAVA JDBC와 Spring JDBC의 비교
4.2 Spring JDBC에서 DataSource 취득하는 방법
4.3 Spring JDBC에서 DB 접근하는 방법
4.3.1 Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4.3.1.1 Maven, Gradle에서 오라클 설정
4.3.1.2 마리아DB 및 HeidiSQL 설치
4.3.1.3 간단한 Spring JDBC jdbcTemplate 예제
4.3.1.4 Spring JDBC 내부 콜백(PreparedStatementCreator, PreparedStatementSetter)
4.3.1.5 jdbcTemplate의 execute 메소드
Chapter 4
Spring JDBC
~ 4.3.1.5
4. Spring JDBC
4-1. 기존 JAVA JDBC와 Spring JDBC의 비교
 Spring의 DAO 프레임워크에서는 Connection 객체를 DataSource를 통해서 취득하며 Connection객체를 프로그래머가
직접 다루지 않는다.
 스프링은 데이터 접근 프로세스에 있어서 고정된 부분과 가변적인 부분을 명확히 분류하는데 고정적인 부분은 템플릿
(template)이며, 가변적인 부분은 콜백(callback)이다.
 템플릿은 프로세스의 고정적인 부분(트랜잭션 관리, 자원관리, 예외처리)을 관리하며 콜백(질의문 생성, 파라미터 바인딩,
결과집합 마샬링)은 구체적인 구현을 넣어야 하는 장소이다. 프로그래머는 콜백부분만 구현하면 된다.
4. Spring JDBC
4-1. 기존 JAVA JDBC와 Spring JDBC의 비교
 기존 JDBC를 이용하여 퍼시스턴스 계층을 구현할 때 문제점
퍼시스턴스 계층은 Connection 생성, PreparedStatement 생성, SQLException 처리와 같이 중복적으로 구현해야 하는 소스 코드가 너무 많다.
 Spring 프레임워크는 JDBC를 추상화한 API를 새롭게 제공하고 있는데 이것이 Spring JDBC이다. Spring JDBC는 기존의
JDBC를 추상화하고 있는 만큼 지금까지 개발자들이 직접 구현해 왔던 Connection 생성, PreparedStatement 생성,
SQLException 처리와 같은 반복적인 작업들을 프레임워크가 담당하고 있다.
 Spring의 DAO 프레임워크가 던지는 모든 예외는 DataAccessException 이다. SQLException이나 HibernateException등
과 같은 특정 기술에 의존적인 예외를 던지지 않는다.
 데이터 접근 인터페이스가 구현에 의존적인 예외가 아닌 스프링의 일반적인 예외를 던짐으로써 특정한 퍼시스턴스 구현
에 결합되는 일이 없다(loose coupling).
 DataAccessException은 반드시 직접 처리할 필요는 없다. RuntimeException이기 때문에 Uncheck Exception에 속한다.
Checked Exception 이 과도한 catch나 throws 절을 야기시켜 코드가 난잡하게 만들수 있다.
 Unchecked Exception이 발생하는 경우는 대부분 복구가 불가능한 것이므로 직접 처리할 필요는 없다. 비지니스 로직을
수행하는 중 발생하는 비즈니스 로직 오류는 Checked Exception으로 처리하고 그렇지 않으면 Unchecked Exception으
로 처리하면 된다.
4. Spring JDBC
4-2. Spring JDBC에서 DataSource 취득하는 방법
 DriverManagerDataSource 클래스 이용
- 자바 소스에서
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(“oracle.jdbc.driver.OracleDriver”);
dataSource.setUrl(“jdbc:oracle:thin:@localhost:1521:onj”);
dataSource.setUsername(“scott”);
dataSource.setPassword(“tiger”);
- 설정파일에서
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
4. Spring JDBC
4-2. Spring JDBC에서 DataSource 취득하는 방법
 DBCP 이용
common-dbcp.jar, commons-pool.jar 파일이 클래스패스에 필요하다.
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<context:property-placeholder location="jdbc.properties"/>
4. Spring JDBC
4-2. Spring JDBC에서 DataSource 취득하는 방법
 JNDI 이용
[context.xml]
<?xml version=”1.0″ encoding=”UTF-8″?>
<Context>
<Resource name=”jdbc/onjdb”
auth=”Container”
type=”javax.sql.DataSource”
driverClassName=”oracle.jdbc.OracleDriver”
url=”jdbc:oracle:thin:@localhost:1521:onj”
username=”scott”
password=”tiger”
maxActive=”20″
maxIdle=”10″
maxWait=”-1″
/>
</Context>
[빈 정의 XML]
<bean id=”dataSource” class=”org.springframework.jndi.JndiObjectFactoryBean”>
<property name=”jndiName” value=”java.comp/env/jdbc/onjdb”/>
</bean>
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
 JdbcTemplate : 전형적인 Spring JDBC 접근법으로 SQL을 실행하며 자주 사용된다.
 NamedParameterJdbcTemplate : 전형적인 JDBC의 ?(Placeholder) 대신에 이름있는 바인딩 파라미터를 제공하기 위한 것이다.
 SimpleJdbcTemplate : JdbcTemplate + NamedParameterJdbcTemplate
 SimpleJdbcInsert : 최소한의 구성으로 Insert가 가능하도록 지원하며 DataSource를 가진 클래스를 인스턴스한 직후
withTableName 메소드를 불러 테이블 이름을 지정해야 한다.
 SimpleJdbcCall : 최소한의 설정으로 데이터베이스 내에 저장된 저장 프로시저, 함수 등을 호출하도록 지원한다.
 SqlUpdate : 재사용 가능한 SQL DML(insert, update, dalete) 구문을 생성한다.
 StoredProcedure : RDB의 저장 프로시저에 대한 추상 수퍼 클래스, 다양한 execute 메소드를 제공한다.
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
 모든 형태의 SQL 구문을 실행해
서 원하는 결과 타입을 반환한다.
 스프링의 모든 데이터 접근 프레
임워크는 템플릿 클래스를 포함
하는데 이 경우 템플릿 클래스는
JdbcTemplate 클래스이다.
 JdbcTemplate 클래스가 작업하
기 위해 필요한 것은 DataSource
이며 스프링의 모든 DAO 템플릿
클래스는 스레드에 안전하기 때
문에 애플리케이션 내의 각각
의 DataSource에 대해서 하나의
JdbcTemplate 인스턴스만을 필
요로 한다.

public class StudentDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTeamplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}//:
}///~
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id=“studentDao"
class="oraclejava.training.jdbc.StudentDao">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" >
<property name="driverClassName“><value>oracle.jdbc.driver.OracleDriver</value></property>
<property name="url“><value>jdbc:oracle:thin:@192.168.0.27:1521:onj</value></property>
<property name="username“><value>scott</value></property>
<property name="password“><value>tiger</value></property>
</bean>
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-1 Maven, Gradle에서 오라클 설정
 그래들 설정
1. 메이븐 로컬 레포지터리에 오라클 JDBC Driver 설치를 위한 메이븐을 설치하자.
https://maven.apache.org/download.cgi 에서 binary zip 파일을 다운받자.
(apache-maven-3.3.3-bin.zip)
2. 적당히 압축을 풀자. (cjava 아래)
압축을 출고 bin 폴더를 환경변수에서 path에 추가하자.
(C:java3apache-maven-3.3.3bin)
3. Oracle JDBC Driver를 다운받자.
http://www.oracle.com/technetwork/apps-tech/jdbc-112010-090769.html
(오라클 11g용 ojdbc6.jar)
4. 다운받은 폴더에서 CMD로 도스창을 띄운 후 아래 명령을 실행하여 로컬 메이븐
레포지터리에 저장하자.
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -
Dversion=11.2.0.4 -Dpackaging=jar -Dfile=ojdbc6.jar -DgeneratePom=true
5. build.grdle을 작성
apply plugin : 'java'
apply plugin : 'application'
mainClassName = "onj.edu.jdbc.JdbcClient"
dependencies {
compile 'org.springframework:spring-context:4.2.4.RELEASE'
compile 'org.springframework:spring-jdbc:4.2.4.RELEASE'
runtime 'commons-dbcp:commons-dbcp:1.2.2'
runtime 'com.oracle:ojdbc6:11.2.0.4'
}
repositories {
mavenCentral()
mavenLocal()
}
 메이븐 설정
<dependencies>
……
<!-- DBCP -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<!-- ORACLE -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.1.0.7.0</version>
</dependency>
……
</dependencies>
<repositories>
<repository>
<id>oracle</id>
<name>ORACLE JDBCRepository</name>
<url>http://maven.jahia.org/maven2</url>
</repository>
</repositories>
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-2 마리아DB 및 HeidiSQL 설치
1. https//download.mariadb.org에 접속 후 “Download 10.1.10 Stable Now!”를 클릭
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-2 마리아DB 및 HeidiSQL 설치
2. 자신의 환경에 맞는 파일을 다운로드 한다.
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-2 마리아DB 및 HeidiSQL 설치
3. 적당한 경로에 압축을 풀고 bin 폴더로 가서 인스톨 하자.(관리자 권한으로 CMD 실행할 것, datadir :
DB설치경로, service : 서비스이름, password : root 비밀번호)
압축푼경로bin>mysql_install_db --datadir=DB설치경로 --service=MySQL --password=1111
Running bootstrap
2016-05-02 9:45:28 7540 [Note] D:dev-ecommercemariadb-10.1.10-winx64binmysq
ld.exe (mysqld 10.1.10-MariaDB) starting as process 7568 ...
Removing default user
Setting root password
Creating my.ini file
Registering service 'MySQL'
Creation of the database was successfull
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-2 마리아DB 및 HeidiSQL 설치
4. 원도우 서비스에 보면 MySQL 이라는 서비스가 떠 있을 것이다.
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-2 마리아DB 및 HeidiSQL 설치
5. 한글 사용을 위해 DB설치경로 아래 my.ini 파일을 열어 수정하자.
[mysqld]
datadir= DB설치경로
[client]
default-character-set = utf8
[mysqld]
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
6. MySQL 서비스 시작
압축푼경로bin>sc start MySQL
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-2 마리아DB 및 HeidiSQL 설치
7. DB에 접속해서 데이터 등을 확인하기 위해 클라이언트도 설치하자.
http://www.heidisql.com/download.php에 접속하여 HeidiSQL을 설치하자.
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-2 마리아DB 및 HeidiSQL 설치
8. 설치파일을 실행하면 HeidiSQL이 설치되며 실행한 후 신규 버튼을 클릭 후 root비번(“1111”)을 입력하면 접속된다.
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-3 간단한 Spring JDBC jdbcTemplate 예제
 마리아DB에서 EMP 테이블의 데이터를 Spring JDBC의 JdbcTemplate을 이용하여 화면에 출력하는 간단한 예제를
작성해 보자.
 STS에서
File -> New -> Project -> Spring Legacy
Project
Project name : jdbc1
Simple Spring Maven 선택
Finish 클릭
 [마리아DB 및 데이터소스 사용을 위해 pom.xml에 다음 의존성을 추가]
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-3 간단한 Spring JDBC jdbcTemplate 예제
 [EmpDao.java]
package jdbc;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
public class EmpDao {
private DataSource dataSource;
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
List getNames() {
String sql = "select * from emp";
return jdbcTemplate.queryForList(sql);
}
}
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-3 간단한 Spring JDBC jdbcTemplate 예제
 [src/main/resources/app-jdbc.xml]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="EmpDao" class="jdbc.EmpDao">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost/jdbc1</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>1111</value>
</property>
</bean>
</beans>
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-3 간단한 Spring JDBC jdbcTemplate 예제
 [JdbcClient.java]
package jdbc;
import org.springframework.context.support.GenericXmlApplicationContext;
import org.springframework.core.io.FileSystemResource;
public class JdbcClient {
public static void main(String[] args) {
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
ctx.load("app-jdbc.xml");
ctx.refresh();
EmpDao e = (EmpDao)ctx.getBean("EmpDao");
System.out.println(e.getNames());
ctx.close();
}
}
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-4 Spring JDBC 내부 콜백(PreparedStatementCreator, PreparedStatementSetter)
 PreparedStatementCreator
//이 인터페이스는 다음과 같은 하나의 메소드를 제공한다.
public PreparedStatement createPreparedStatement(Connection con) throws SQLException;
//JdbcTemplate이 아래 클래스를 호출할 때 실행된 SQL로그를 남긴다.
//SqlProvider는 getSql() 이라는 메소드를 제공, SQL문자열을 JdbcTemplate에서 사용가능하도록 제공한다.
public class InsertPersonStatementCreator implements PreparedStatementCreator, SqlProvider
{
private String sql = “INSERT INTO ( id, firstname, lastname) VALUES ( ? , ? ?)”;
public PreparedStatement createPreparedStatement(Connection con) ..
return con.preparedStatement(sql);
}//:
public String getSql() { return sql; }
}
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-4 Spring JDBC 내부 콜백(PreparedStatementCreator, PreparedStatementSetter)
 PreparedStatementSetter
//이 인터페이스는 SQL 파라미터를 Setting하는 메소드를 제공한다.
void setValues(PreparedStatement ps) throws SQLException;
private Person person;
public void setVales(PreparedStatement ps) throws SQLException {
ps.setInt (1, person.getId().intValue());
ps.setString (2, person.getFirstName());
ps.setString (3, person.getLastName());
}
…
4. Spring JDBC
4-3. Spring JDBC에서 DataSource 취득하는 방법
4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate
4-3-1-5 jdbcTemplate의 execute 메소드
 대개 SQL문자열로 부터 PreparedStatement를 생성하고 파라미터를 바인딩 하는 작업을 많이 하므로
JdbcTemplate은 execute 메소드를 제공한다.
 주로 DDL 처리용으로 아래와 같은 경우 백그라운드에서 JdbcTemplate이 PreparedStatement와
PreparedStatementSetter를 생성 시킨다.

public int insertPerson(Person person) {
String sql = “insert into person (id, firstname, lastname) values (?,?,?)”;
Object[] params = new Object[] {
person.getId(),
person.getFirstName(),
person.getLastName()
};
return jdbcTemplate.execute(sql, params);
}
Any Questions ?
THANK YOU
FOR YOUR ATTENTION
무료국비지원교육 / 구로자바학원 _ 탑크리에듀 교육센터
http://www.topcredu.co.kr

More Related Content

What's hot

SpringDataJPA - 스프링 캠프
SpringDataJPA - 스프링 캠프SpringDataJPA - 스프링 캠프
SpringDataJPA - 스프링 캠프Younghan Kim
 
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)DK Lee
 
[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis Basic[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis BasicJi-Woong Choi
 
Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)visual khh
 
03.실행환경 교육교재(배치처리)
03.실행환경 교육교재(배치처리)03.실행환경 교육교재(배치처리)
03.실행환경 교육교재(배치처리)Hankyo
 
03.실행환경 실습교재(배치처리)
03.실행환경 실습교재(배치처리)03.실행환경 실습교재(배치처리)
03.실행환경 실습교재(배치처리)Hankyo
 
좌충우돌 ORM 개발기 | Devon 2012
좌충우돌 ORM 개발기 | Devon 2012좌충우돌 ORM 개발기 | Devon 2012
좌충우돌 ORM 개발기 | Devon 2012Daum DNA
 
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)DK Lee
 
Ksug2015 - JPA1, JPA 소개
Ksug2015 - JPA1, JPA 소개Ksug2015 - JPA1, JPA 소개
Ksug2015 - JPA1, JPA 소개Younghan Kim
 
Ksug2015 - JPA3, JPA 내부구조
Ksug2015 - JPA3, JPA 내부구조Ksug2015 - JPA3, JPA 내부구조
Ksug2015 - JPA3, JPA 내부구조Younghan Kim
 
Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑Younghan Kim
 
Spring camp 발표자료
Spring camp 발표자료Spring camp 발표자료
Spring camp 발표자료수홍 이
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)Hankyo
 
Ksug2015 jpa4 객체지향쿼리
Ksug2015 jpa4 객체지향쿼리Ksug2015 jpa4 객체지향쿼리
Ksug2015 jpa4 객체지향쿼리Younghan Kim
 
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Choonghyun Yang
 
02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)Hankyo
 
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)DK Lee
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)sung yong jung
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)DK Lee
 

What's hot (20)

SpringDataJPA - 스프링 캠프
SpringDataJPA - 스프링 캠프SpringDataJPA - 스프링 캠프
SpringDataJPA - 스프링 캠프
 
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
 
[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis Basic[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis Basic
 
Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)
 
03.실행환경 교육교재(배치처리)
03.실행환경 교육교재(배치처리)03.실행환경 교육교재(배치처리)
03.실행환경 교육교재(배치처리)
 
03.실행환경 실습교재(배치처리)
03.실행환경 실습교재(배치처리)03.실행환경 실습교재(배치처리)
03.실행환경 실습교재(배치처리)
 
좌충우돌 ORM 개발기 | Devon 2012
좌충우돌 ORM 개발기 | Devon 2012좌충우돌 ORM 개발기 | Devon 2012
좌충우돌 ORM 개발기 | Devon 2012
 
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
 
Ksug2015 - JPA1, JPA 소개
Ksug2015 - JPA1, JPA 소개Ksug2015 - JPA1, JPA 소개
Ksug2015 - JPA1, JPA 소개
 
Ksug2015 - JPA3, JPA 내부구조
Ksug2015 - JPA3, JPA 내부구조Ksug2015 - JPA3, JPA 내부구조
Ksug2015 - JPA3, JPA 내부구조
 
Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑Ksug2015 - JPA2, JPA 기초와매핑
Ksug2015 - JPA2, JPA 기초와매핑
 
Spring camp 발표자료
Spring camp 발표자료Spring camp 발표자료
Spring camp 발표자료
 
04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)04.실행환경 교육교재(화면처리)
04.실행환경 교육교재(화면처리)
 
Ksug2015 jpa4 객체지향쿼리
Ksug2015 jpa4 객체지향쿼리Ksug2015 jpa4 객체지향쿼리
Ksug2015 jpa4 객체지향쿼리
 
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)
 
02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)
 
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
 

Similar to Spring Framework & MyBatis_ 스프링프레임워크 & 마이바티스 /구로오라클학원/ 구로자바학원/ 구로디지털단지역

(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
All about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apmAll about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apm엑셈
 
Ksug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpaKsug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpaYounghan Kim
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Javajigi Jaesung
 
Jstl_GETCHA_HANJUNG
Jstl_GETCHA_HANJUNGJstl_GETCHA_HANJUNG
Jstl_GETCHA_HANJUNGJung Han
 
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[스프링교육추천강좌]스프링마이바티스를이용한통합구현재직자향상과정_자바학원/스프링학원/스프링학원추천/구로IT/국비지원/재직자교육
[스프링교육추천강좌]스프링마이바티스를이용한통합구현재직자향상과정_자바학원/스프링학원/스프링학원추천/구로IT/국비지원/재직자교육[스프링교육추천강좌]스프링마이바티스를이용한통합구현재직자향상과정_자바학원/스프링학원/스프링학원추천/구로IT/국비지원/재직자교육
[스프링교육추천강좌]스프링마이바티스를이용한통합구현재직자향상과정_자바학원/스프링학원/스프링학원추천/구로IT/국비지원/재직자교육탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술NAVER D2
 
Flamingo (FEA) Spark Designer
Flamingo (FEA) Spark DesignerFlamingo (FEA) Spark Designer
Flamingo (FEA) Spark DesignerBYOUNG GON KIM
 
Spring mvc
Spring mvcSpring mvc
Spring mvcksain
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxNeoClova
 
Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Hyosang Hong
 
Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Hyosang Hong
 
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 

Similar to Spring Framework & MyBatis_ 스프링프레임워크 & 마이바티스 /구로오라클학원/ 구로자바학원/ 구로디지털단지역 (20)

(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
All about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apmAll about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apm
 
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
 
Ksug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpaKsug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpa
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
 
Jstl_GETCHA_HANJUNG
Jstl_GETCHA_HANJUNGJstl_GETCHA_HANJUNG
Jstl_GETCHA_HANJUNG
 
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
[JPA학원추천]spring framework&jpa활용한프로그램구현재직자향상과정_JPA학원/스프링학원/IT학원추천/재직자교육/국비지원/재...
 
[스프링교육추천강좌]스프링마이바티스를이용한통합구현재직자향상과정_자바학원/스프링학원/스프링학원추천/구로IT/국비지원/재직자교육
[스프링교육추천강좌]스프링마이바티스를이용한통합구현재직자향상과정_자바학원/스프링학원/스프링학원추천/구로IT/국비지원/재직자교육[스프링교육추천강좌]스프링마이바티스를이용한통합구현재직자향상과정_자바학원/스프링학원/스프링학원추천/구로IT/국비지원/재직자교육
[스프링교육추천강좌]스프링마이바티스를이용한통합구현재직자향상과정_자바학원/스프링학원/스프링학원추천/구로IT/국비지원/재직자교육
 
[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술
 
okspring3x
okspring3xokspring3x
okspring3x
 
3.Spring IoC&DI(spring ioc실습, XML기반)
3.Spring IoC&DI(spring ioc실습, XML기반)3.Spring IoC&DI(spring ioc실습, XML기반)
3.Spring IoC&DI(spring ioc실습, XML기반)
 
Flamingo (FEA) Spark Designer
Flamingo (FEA) Spark DesignerFlamingo (FEA) Spark Designer
Flamingo (FEA) Spark Designer
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptx
 
Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료
 
Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료
 
Spark sql
Spark sqlSpark sql
Spark sql
 
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리)

[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리) (20)

자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
 
[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육
 
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
 
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
 
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
 
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
 
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
 
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
 
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
 
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
 

Spring Framework & MyBatis_ 스프링프레임워크 & 마이바티스 /구로오라클학원/ 구로자바학원/ 구로디지털단지역

  • 1. Spring Framework & MyBatis 스프링 프레임워크 & 마이바티스 강의 탑크리에듀 교육센터
  • 2. CONTENTS 4. Spring JDBC 4.1 기존 JAVA JDBC와 Spring JDBC의 비교 4.2 Spring JDBC에서 DataSource 취득하는 방법 4.3 Spring JDBC에서 DB 접근하는 방법 4.3.1 Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4.3.1.1 Maven, Gradle에서 오라클 설정 4.3.1.2 마리아DB 및 HeidiSQL 설치 4.3.1.3 간단한 Spring JDBC jdbcTemplate 예제 4.3.1.4 Spring JDBC 내부 콜백(PreparedStatementCreator, PreparedStatementSetter) 4.3.1.5 jdbcTemplate의 execute 메소드
  • 4. 4. Spring JDBC 4-1. 기존 JAVA JDBC와 Spring JDBC의 비교  Spring의 DAO 프레임워크에서는 Connection 객체를 DataSource를 통해서 취득하며 Connection객체를 프로그래머가 직접 다루지 않는다.  스프링은 데이터 접근 프로세스에 있어서 고정된 부분과 가변적인 부분을 명확히 분류하는데 고정적인 부분은 템플릿 (template)이며, 가변적인 부분은 콜백(callback)이다.  템플릿은 프로세스의 고정적인 부분(트랜잭션 관리, 자원관리, 예외처리)을 관리하며 콜백(질의문 생성, 파라미터 바인딩, 결과집합 마샬링)은 구체적인 구현을 넣어야 하는 장소이다. 프로그래머는 콜백부분만 구현하면 된다.
  • 5. 4. Spring JDBC 4-1. 기존 JAVA JDBC와 Spring JDBC의 비교  기존 JDBC를 이용하여 퍼시스턴스 계층을 구현할 때 문제점 퍼시스턴스 계층은 Connection 생성, PreparedStatement 생성, SQLException 처리와 같이 중복적으로 구현해야 하는 소스 코드가 너무 많다.  Spring 프레임워크는 JDBC를 추상화한 API를 새롭게 제공하고 있는데 이것이 Spring JDBC이다. Spring JDBC는 기존의 JDBC를 추상화하고 있는 만큼 지금까지 개발자들이 직접 구현해 왔던 Connection 생성, PreparedStatement 생성, SQLException 처리와 같은 반복적인 작업들을 프레임워크가 담당하고 있다.  Spring의 DAO 프레임워크가 던지는 모든 예외는 DataAccessException 이다. SQLException이나 HibernateException등 과 같은 특정 기술에 의존적인 예외를 던지지 않는다.  데이터 접근 인터페이스가 구현에 의존적인 예외가 아닌 스프링의 일반적인 예외를 던짐으로써 특정한 퍼시스턴스 구현 에 결합되는 일이 없다(loose coupling).  DataAccessException은 반드시 직접 처리할 필요는 없다. RuntimeException이기 때문에 Uncheck Exception에 속한다. Checked Exception 이 과도한 catch나 throws 절을 야기시켜 코드가 난잡하게 만들수 있다.  Unchecked Exception이 발생하는 경우는 대부분 복구가 불가능한 것이므로 직접 처리할 필요는 없다. 비지니스 로직을 수행하는 중 발생하는 비즈니스 로직 오류는 Checked Exception으로 처리하고 그렇지 않으면 Unchecked Exception으 로 처리하면 된다.
  • 6. 4. Spring JDBC 4-2. Spring JDBC에서 DataSource 취득하는 방법  DriverManagerDataSource 클래스 이용 - 자바 소스에서 DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName(“oracle.jdbc.driver.OracleDriver”); dataSource.setUrl(“jdbc:oracle:thin:@localhost:1521:onj”); dataSource.setUsername(“scott”); dataSource.setPassword(“tiger”); - 설정파일에서 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean>
  • 7. 4. Spring JDBC 4-2. Spring JDBC에서 DataSource 취득하는 방법  DBCP 이용 common-dbcp.jar, commons-pool.jar 파일이 클래스패스에 필요하다. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <context:property-placeholder location="jdbc.properties"/>
  • 8. 4. Spring JDBC 4-2. Spring JDBC에서 DataSource 취득하는 방법  JNDI 이용 [context.xml] <?xml version=”1.0″ encoding=”UTF-8″?> <Context> <Resource name=”jdbc/onjdb” auth=”Container” type=”javax.sql.DataSource” driverClassName=”oracle.jdbc.OracleDriver” url=”jdbc:oracle:thin:@localhost:1521:onj” username=”scott” password=”tiger” maxActive=”20″ maxIdle=”10″ maxWait=”-1″ /> </Context> [빈 정의 XML] <bean id=”dataSource” class=”org.springframework.jndi.JndiObjectFactoryBean”> <property name=”jndiName” value=”java.comp/env/jdbc/onjdb”/> </bean>
  • 9. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법  JdbcTemplate : 전형적인 Spring JDBC 접근법으로 SQL을 실행하며 자주 사용된다.  NamedParameterJdbcTemplate : 전형적인 JDBC의 ?(Placeholder) 대신에 이름있는 바인딩 파라미터를 제공하기 위한 것이다.  SimpleJdbcTemplate : JdbcTemplate + NamedParameterJdbcTemplate  SimpleJdbcInsert : 최소한의 구성으로 Insert가 가능하도록 지원하며 DataSource를 가진 클래스를 인스턴스한 직후 withTableName 메소드를 불러 테이블 이름을 지정해야 한다.  SimpleJdbcCall : 최소한의 설정으로 데이터베이스 내에 저장된 저장 프로시저, 함수 등을 호출하도록 지원한다.  SqlUpdate : 재사용 가능한 SQL DML(insert, update, dalete) 구문을 생성한다.  StoredProcedure : RDB의 저장 프로시저에 대한 추상 수퍼 클래스, 다양한 execute 메소드를 제공한다.
  • 10. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate  모든 형태의 SQL 구문을 실행해 서 원하는 결과 타입을 반환한다.  스프링의 모든 데이터 접근 프레 임워크는 템플릿 클래스를 포함 하는데 이 경우 템플릿 클래스는 JdbcTemplate 클래스이다.  JdbcTemplate 클래스가 작업하 기 위해 필요한 것은 DataSource 이며 스프링의 모든 DAO 템플릿 클래스는 스레드에 안전하기 때 문에 애플리케이션 내의 각각 의 DataSource에 대해서 하나의 JdbcTemplate 인스턴스만을 필 요로 한다.  public class StudentDao { private JdbcTemplate jdbcTemplate; public void setJdbcTeamplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; }//: }///~ <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean> <bean id=“studentDao" class="oraclejava.training.jdbc.StudentDao"> <property name="jdbcTemplate"> <ref bean="jdbcTemplate"/> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" > <property name="driverClassName“><value>oracle.jdbc.driver.OracleDriver</value></property> <property name="url“><value>jdbc:oracle:thin:@192.168.0.27:1521:onj</value></property> <property name="username“><value>scott</value></property> <property name="password“><value>tiger</value></property> </bean>
  • 11. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-1 Maven, Gradle에서 오라클 설정  그래들 설정 1. 메이븐 로컬 레포지터리에 오라클 JDBC Driver 설치를 위한 메이븐을 설치하자. https://maven.apache.org/download.cgi 에서 binary zip 파일을 다운받자. (apache-maven-3.3.3-bin.zip) 2. 적당히 압축을 풀자. (cjava 아래) 압축을 출고 bin 폴더를 환경변수에서 path에 추가하자. (C:java3apache-maven-3.3.3bin) 3. Oracle JDBC Driver를 다운받자. http://www.oracle.com/technetwork/apps-tech/jdbc-112010-090769.html (오라클 11g용 ojdbc6.jar) 4. 다운받은 폴더에서 CMD로 도스창을 띄운 후 아래 명령을 실행하여 로컬 메이븐 레포지터리에 저장하자. mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 - Dversion=11.2.0.4 -Dpackaging=jar -Dfile=ojdbc6.jar -DgeneratePom=true 5. build.grdle을 작성 apply plugin : 'java' apply plugin : 'application' mainClassName = "onj.edu.jdbc.JdbcClient" dependencies { compile 'org.springframework:spring-context:4.2.4.RELEASE' compile 'org.springframework:spring-jdbc:4.2.4.RELEASE' runtime 'commons-dbcp:commons-dbcp:1.2.2' runtime 'com.oracle:ojdbc6:11.2.0.4' } repositories { mavenCentral() mavenLocal() }  메이븐 설정 <dependencies> …… <!-- DBCP --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.2.2</version> </dependency> <!-- ORACLE --> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.1.0.7.0</version> </dependency> …… </dependencies> <repositories> <repository> <id>oracle</id> <name>ORACLE JDBCRepository</name> <url>http://maven.jahia.org/maven2</url> </repository> </repositories>
  • 12. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-2 마리아DB 및 HeidiSQL 설치 1. https//download.mariadb.org에 접속 후 “Download 10.1.10 Stable Now!”를 클릭
  • 13. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-2 마리아DB 및 HeidiSQL 설치 2. 자신의 환경에 맞는 파일을 다운로드 한다.
  • 14. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-2 마리아DB 및 HeidiSQL 설치 3. 적당한 경로에 압축을 풀고 bin 폴더로 가서 인스톨 하자.(관리자 권한으로 CMD 실행할 것, datadir : DB설치경로, service : 서비스이름, password : root 비밀번호) 압축푼경로bin>mysql_install_db --datadir=DB설치경로 --service=MySQL --password=1111 Running bootstrap 2016-05-02 9:45:28 7540 [Note] D:dev-ecommercemariadb-10.1.10-winx64binmysq ld.exe (mysqld 10.1.10-MariaDB) starting as process 7568 ... Removing default user Setting root password Creating my.ini file Registering service 'MySQL' Creation of the database was successfull
  • 15. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-2 마리아DB 및 HeidiSQL 설치 4. 원도우 서비스에 보면 MySQL 이라는 서비스가 떠 있을 것이다.
  • 16. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-2 마리아DB 및 HeidiSQL 설치 5. 한글 사용을 위해 DB설치경로 아래 my.ini 파일을 열어 수정하자. [mysqld] datadir= DB설치경로 [client] default-character-set = utf8 [mysqld] init_connect = SET collation_connection = utf8_general_ci init_connect = SET NAMES utf8 character-set-server = utf8 collation-server = utf8_general_ci [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 6. MySQL 서비스 시작 압축푼경로bin>sc start MySQL
  • 17. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-2 마리아DB 및 HeidiSQL 설치 7. DB에 접속해서 데이터 등을 확인하기 위해 클라이언트도 설치하자. http://www.heidisql.com/download.php에 접속하여 HeidiSQL을 설치하자.
  • 18. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-2 마리아DB 및 HeidiSQL 설치 8. 설치파일을 실행하면 HeidiSQL이 설치되며 실행한 후 신규 버튼을 클릭 후 root비번(“1111”)을 입력하면 접속된다.
  • 19. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-3 간단한 Spring JDBC jdbcTemplate 예제  마리아DB에서 EMP 테이블의 데이터를 Spring JDBC의 JdbcTemplate을 이용하여 화면에 출력하는 간단한 예제를 작성해 보자.  STS에서 File -> New -> Project -> Spring Legacy Project Project name : jdbc1 Simple Spring Maven 선택 Finish 클릭  [마리아DB 및 데이터소스 사용을 위해 pom.xml에 다음 의존성을 추가] <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring-framework.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> <scope>runtime</scope> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency>
  • 20. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-3 간단한 Spring JDBC jdbcTemplate 예제  [EmpDao.java] package jdbc; import java.util.List; import javax.sql.DataSource; import org.springframework.jdbc.core.JdbcTemplate; public class EmpDao { private DataSource dataSource; private JdbcTemplate jdbcTemplate; public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; this.jdbcTemplate = new JdbcTemplate(dataSource); } List getNames() { String sql = "select * from emp"; return jdbcTemplate.queryForList(sql); } }
  • 21. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-3 간단한 Spring JDBC jdbcTemplate 예제  [src/main/resources/app-jdbc.xml] <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="EmpDao" class="jdbc.EmpDao"> <property name="dataSource"> <ref bean="dataSource" /> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost/jdbc1</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>1111</value> </property> </bean> </beans>
  • 22. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-3 간단한 Spring JDBC jdbcTemplate 예제  [JdbcClient.java] package jdbc; import org.springframework.context.support.GenericXmlApplicationContext; import org.springframework.core.io.FileSystemResource; public class JdbcClient { public static void main(String[] args) { GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ctx.load("app-jdbc.xml"); ctx.refresh(); EmpDao e = (EmpDao)ctx.getBean("EmpDao"); System.out.println(e.getNames()); ctx.close(); } }
  • 23. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-4 Spring JDBC 내부 콜백(PreparedStatementCreator, PreparedStatementSetter)  PreparedStatementCreator //이 인터페이스는 다음과 같은 하나의 메소드를 제공한다. public PreparedStatement createPreparedStatement(Connection con) throws SQLException; //JdbcTemplate이 아래 클래스를 호출할 때 실행된 SQL로그를 남긴다. //SqlProvider는 getSql() 이라는 메소드를 제공, SQL문자열을 JdbcTemplate에서 사용가능하도록 제공한다. public class InsertPersonStatementCreator implements PreparedStatementCreator, SqlProvider { private String sql = “INSERT INTO ( id, firstname, lastname) VALUES ( ? , ? ?)”; public PreparedStatement createPreparedStatement(Connection con) .. return con.preparedStatement(sql); }//: public String getSql() { return sql; } }
  • 24. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-4 Spring JDBC 내부 콜백(PreparedStatementCreator, PreparedStatementSetter)  PreparedStatementSetter //이 인터페이스는 SQL 파라미터를 Setting하는 메소드를 제공한다. void setValues(PreparedStatement ps) throws SQLException; private Person person; public void setVales(PreparedStatement ps) throws SQLException { ps.setInt (1, person.getId().intValue()); ps.setString (2, person.getFirstName()); ps.setString (3, person.getLastName()); } …
  • 25. 4. Spring JDBC 4-3. Spring JDBC에서 DataSource 취득하는 방법 4-3-1. Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate 4-3-1-5 jdbcTemplate의 execute 메소드  대개 SQL문자열로 부터 PreparedStatement를 생성하고 파라미터를 바인딩 하는 작업을 많이 하므로 JdbcTemplate은 execute 메소드를 제공한다.  주로 DDL 처리용으로 아래와 같은 경우 백그라운드에서 JdbcTemplate이 PreparedStatement와 PreparedStatementSetter를 생성 시킨다.  public int insertPerson(Person person) { String sql = “insert into person (id, firstname, lastname) values (?,?,?)”; Object[] params = new Object[] { person.getId(), person.getFirstName(), person.getLastName() }; return jdbcTemplate.execute(sql, params); }
  • 26. Any Questions ? THANK YOU FOR YOUR ATTENTION 무료국비지원교육 / 구로자바학원 _ 탑크리에듀 교육센터 http://www.topcredu.co.kr