STUDY/SPRING

스프링(3.0) Java에서 DB사용

Anne of Green Galbes 2019. 4. 16. 16:39

1. DB사용 방법

 ① myBatis 사용

  - 주로 사용

  - Spring ORM : 대표적인게 iBatis


 ② 스프링자체 DB 사용

   - Spring DAO


2. 새 프로젝트 설정


3. cmd창에서 DB생성

create table custom

(id number,

name char(10),

age number);



4. 메이븐

maven(메이븐)


① maven(메이븐)설치

 ○ 메이븐을 날코딩으로 설치하는 경우는 드물다

② 구조

 ○ 특정 저장소를 만들고 라이브러리를 저장소에서 다운로드 받기만 하면 된다

  - 자신이 직접 라이브러리를 구할 필요가 없다

  - 원래는 라이브러리파일을 프로젝트에 추가했다

 ○ 라이브러리를 받아오는 문법을 통해 다운받는다

 ○ 저장소는 메이븐, 구글,???에서 제공한다


③ 메이븐 저장소

 ○ https://mvnrepository.com/

 ○ jdbc라이브러리가 기본으로 필요하다

  - Commons DBCP : 제일 많이 사용하는 DBCP

  - Maven, Gradle, Grape를 가장 많이 사용한다


④ pool

 - Commons Pool


⑤ pom.xml

 - 메이븐 설정 파일

 - 다음 설정 추가

<!-- commons-dbcp -->

<dependency>

  <groupId>commons-dbcp</groupId>

  <artifactId>commons-dbcp</artifactId>

  <version>1.4</version>

</dependency>


<!-- commons-pool -->

<dependency>

  <groupId>commons-pool</groupId>

  <artifactId>commons-pool</artifactId>

  <version>1.6</version>

</dependency>

 - 작성위치


⑥ 메이븐 repository

 ○ C:\Users\itwill\.m2\repository

 ○ 다음 풀더 생성 확인

  - commons-dbcp

  - commons-pool


5. DTO 작성

○ 위치 : src/main/java >  com.exe.springjdbctemplate

○ 파일 이름 : CustomDTO

package com.exe.springjdbctemplate;


public class CustomDTO {

private int id;

private String name;

private int age;


//getter & setter

}


6. app-context.xml 복사

○ 원래 위치 : src/main/resources > META-INF > spring

○ 복사 위치 : src/main/java

① context생성

 - 사용자 정의 문법을 작성하기 위해 다음 작성 : xmlns:p="http://www.springframework.org/schema/p"

 - 짝으로 사용하므로 다음 추가 : http://www.springframework.org/schema/p

 - 작성 위치

② 스프링에게 DB의 위치 정보를 알려주는 코딩 작성

 - DB를 연결하는 객체

<bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close"

p:driverClassName="oracle.jdbc.driver.OracleDriver"

p:url="jdbc:oracle:thin:@자신의 ip주소(localhost):DB이름(XE)"

p:username="사용자r"

p:password="비밀번호"/>

③ 의존성 주입

 - 일반적으로 메소드로 초기화작업을 많이 해준다 : property

<bean id="custonDAO" class="com.exe.springjdbctemplate.CustomDAO">

<property name="dataSource" ref="dataSource"/>

</bean>

④ CustomDAO.java에 다음 추가

private DataSource dataSource;

public void setDataSource(DataSource dataSource) {

this.dataSource = dataSource;

}


7. CustomDAO 작성

○ JDBC로 작성

○ 데이터 입력

//dataSource값을 여기다가 넣어줘야 해서 작성

Connection conn = null;

public int insertData(CustomDTO dto) {

int result = 0;

PreparedStatement pstmt = null;

String sql;

try {

conn = dataSource.getConnection();

sql = "insert into cusotm (id,name,age) values (?,?,?)";

pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, dto.getId());

pstmt.setString(2, dto.getName());

pstmt.setInt(3, dto.getAge());

result = pstmt.executeUpdate();

pstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return result;

}

○ 다른 sql작업도 작성

 - public List<CustomDTO> getList() : 모든 데이터 출력

 - public CustomDTO getReadData(int id) : 하나의 데이터 출력

 - public int updateData(CustomDTO dto) : 데이터 수정

 - public int deleteData(int id) : 데이터 삭제


8. CustomMain.java 작성

○ 기본

package com.exe.springjdbctemplate;

import java.util.List;

import org.springframework.context.support.GenericXmlApplicationContext;

public class CustomMain {

public static void main(String[] args) {

GenericXmlApplicationContext context = new GenericXmlApplicationContext("app-context.xml");

CustomDAO dao = (CustomDAO)context.getBean("customDAO");

CustomDTO dto;

dto = new CustomDTO();

}

}

○ 각각 추가

 - 데이터 추가

 - 데이터 수정

 - 하나의 데이터 검색

 - 모든 데이터 출력

 - 데이터 삭제


9. 에러가 나는 경우

① main에러

○ app-context.xml에서 다음 삭제

 - http://www.springframework.org/schema/p

② 라이브러리 에러

○ ojdbc6추가

 - pom.xml에 다음 추가

<!--ojdbc6 -->

<dependency>

  <groupId>com.oracle</groupId>

  <artifactId>ojdbc6</artifactId>

  <version>12.1.0.1-atlassian-hosted</version>

  <scope>test</scope>

</dependency>

 - repository 추가

 - pom.xml에 추가

   dependencies 밑에 추가

<repositories>

<repository>

<id>oracle</id>

<name>Oracle JDBC Repository</name>

<url>https://packages.atlassian.com/maven-3rdparty/</url>

</repository>

</repositories>

○ 생성 파일 확인

 - 위치 : C:\Users\itwill\.m2\repository\com\oracle\ojdbc6\12.1.0.1-atlassian-hosted