join sql.txt
0.00MB
ojdbc8.jar
3.97MB



오라클 계정 생성 및 설정

테이블 생성과 Dummy 데이터 생성
SQL Developer 를 이용하여 본인의 계정으로 접속하여 테이블 생성.
게시물은 각 게시물 마다 고유의 번호가 필요 오라클의 경우 시퀸스를 이용하여 처리
시퀸스를 생성 할 때에는 다른 오브젝트들(테이블 등)과 구별하기 위하여 'seq_'로 시작하거나, 't_'와 같이 구분이 가능한 단어를 앞에 붙여준다.
tbl_board 테이블 구성요소
bno : 고유의 번호
title : 제목
content : 내용
writer : 작성자
테이블을 설계할 때에는
가능하면 레코드의 생성 시간과 최종 수정 시간을 같이 기록하는 것이 일반적
regdate : 생성 시간
updatedate : 최종 수정 시간
레코드가 생성 된 시간을 자동으로 기록될 수 있도록 기본 값을 sysdate로 설정
PK(Primary Key)를 지정 할 때에는 'pk_'로 시작하는 이름을 붙여주는 것이 일반적.
반드시 의미를 구분 할 수 있도록 생성해준다.
테이블 생성
create sequence seq_board;
create table tbl_board (
bno number(10,2),
title varchar2(200) not null,
content varchar2(2000) not null,
writer varchar2(50) not null,
regdate date default sysdate,
updatedate date default sysdate
);
테이블 수정
alter table tbl_board
add constraint pk_board
primary key(bno);
테이블 저장
commit;
테이블을 생성하고 나면, 테스트를 위한 여러개의 데이터를 추가하게 되는데, 이런 의미 없는 데이터를 'tpy data' 혹은 'dummy data' 라고 한다.
insert into tbl_board (bno, title, content, writer)
values (seq_board.nextval,'테스트제목', '테스트 내용', 'user00');
insert into tbl_board (bno, title, content, writer)
values (seq_board.nextval,'테스트제목', '테스트 내용1', 'user01');
insert into tbl_board (bno, title, content, writer)
values (seq_board.nextval,'테스트제목', '테스트 내용2', 'user02');
insert into tbl_board (bno, title, content, writer)
values (seq_board.nextval,'테스트제목', '테스트 내용3', 'user03');
insert into tbl_board (bno, title, content, writer)
values (seq_board.nextval,'테스트제목', '테스트 내용4', 'user04');
commit;

log4jdbc.log4j2.properties 파일 작성(test 로그 값 찍어주는 것/콘솔창에 찍어주는 것 처럼 나옴)
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
spring.datasource.hikari.connection-test-query=SELECT 1 FROM DUAL



<!-- Root Context: defines shared resources visible to all other web components -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<!-- Old Driver -->
<!--
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
-->
<!-- log4jdbc -->
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
<property name="jdbcUrl" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:XE"></property>
<property name="username" value="ohj"></property>
<property name="password" value="920424"></property>
</bean>
<!-- HikariCP configuration -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig"></constructor-arg>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
</bean>
<mybatis-spring:scan base-package="com.ohj.mapper" />

package com.ohj.persistence;
import static org.junit.Assert.fail;
import java.sql.Connection;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory; // SqlSession 객체를 얻어내야 하기 때문에 임포트
import org.junit.Test; //단계별 테스트를 위한 임포트
import org.junit.runner.RunWith; // 실행 과정을 봐야 하기 위한 임포트
import org.springframework.beans.factory.annotation.Autowired; // 어노테이션을 이용한 주입방식(오토위어드 방식)
import org.springframework.test.context.ContextConfiguration; // 환경설정(테스트용도) 구조
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import lombok.Setter;
import lombok.extern.log4j.Log4j;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class DataSourceTests {
@Setter(onMethod_= { @Autowired })
private DataSource dataSource;
@Setter(onMethod_= { @Autowired })
private SqlSessionFactory sqlSessionFactory;
@Test
public void testMyBatis() {
//세션팩토리에 접속하기 위한 코드
try(SqlSession session = sqlSessionFactory.openSession();
Connection con = session.getConnection();) {
log.info(session);
log.info(con);
} catch(Exception e) {
fail(e.getMessage());
} // try catch END
}// testMyBatis() END
public void testConnection() {
try(Connection con = dataSource.getConnection()){
log.info(con);
} catch(Exception e) {
fail(e.getMessage());
}// try catch END
}// testConnection() END
}
package com.ohj.persistence;
import static org.junit.Assert.fail;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
import lombok.extern.log4j.Log4j;
//순수 JDBC로 접속하기 위한 테스트 코드
@Log4j
public class JDBCTests {
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (Exception e) {
e.printStackTrace();
} // try catch END
}// JDBCTests END
@Test
public void testConnection() {
try (Connection con = DriverManager.getConnection("jdbc:log4jdbc:oracle:thin:@localhost:1521:XE", "inventory", "1234")) {
log.info(con);
} catch (Exception e) {
fail(e.getMessage());
} // try catch END
}// testConnection END
}//CLASS END
':: IT > Spring' 카테고리의 다른 글
AOP (0) | 2020.05.20 |
---|---|
[스프링프레임워크] 컨트롤러 작성, DAO,DTO,VO설명, 상세보기 (0) | 2020.05.14 |
[스프링프레임워크]VO클래스 작성, 수정,삭제 구현 (0) | 2020.05.13 |
[스프링프레임워크] 스프링프레임워크 폴더 생성, spring MVC 설명, DI, IoC, 스프링 MVC 프로젝트 기초 설정, (0) | 2020.05.11 |