티스토리 뷰
728x90
oracleXE112_Win64 설치
sql developer 다운 받아서 실행
디비애니라는 프로그램도 있음~
-- port 확인 하는 메서드
select dbms_xdb.gethttpport () from dual;
-- port 바꾸기~
exec dbms_xdb.sethttpport(9090);
-- 사용자 계정 생성
create user book_ex IDENTIFIED by book_ex
Default tablespace users -- 기본 테이블 스페이스는 users로 지정
temporary tablespace temp; -- 임시 테이블 스페이스는 temp로 지정
grant connect, DBA TO book_ex; -- 접속 권한과 DBA 관리자 권한 부여
-- C:\oraclexe\app\oracle\oradata\XE
-- DBF 파일 : 테이블 스페이스 사용 하는 파일
-- Users.DBF Users 테이블 스페이스
스프링에서 DB 설정
JDBC 연결 및 테스트
버전 확인은 항상 중요
pom.xml 에 해당 코드 추가
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
Maven Dependencies에 ojdbc6 - 11.2.0.4 의존성 추가 됐는지 확인
잘 되는지 확인 -- Test에서 진행
package org.codehows.persistence;
import static org.junit.Assert.fail;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
import lombok.extern.log4j.Log4j;
@Log4j
public class JDBCTest {
@Test
public void testConnection() throws Exception {
Class clz = Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con =
DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:XE",
"book_ex", "book_ex");
log.info(con);
con.close(); //bad code
// finally로 클로주 해주는게 좋은 코드
}
}
해당 코드 추가 후 JUnit 으로 테스트 실행
83p 커넥션 풀 설정
DataSource 설정 -- HikariCP 88p
- DB와 Connection을 맺고 끊는 작업은 리소스의 소모가 많은 작업
- Pooling이라는 기법을 통해서 객체를 미리 생성하고 빌려 쓰는 방식으로 이용해서 연결 시간을 단축
- Commouns DBCP
- 커넥션 풀 있고 없고 차이는 매우 크다.
- pom.xml 에 의존성 추가
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>
- 추가 후 Maven Dependencies에서 의존성 추가 확인
- root-context.xml에 추가
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name ="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"></property>
<property name="username" value="book_ex"></property>
<property name="password" value="book_ex"></property>
</bean>
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig"></constructor-arg>
</bean>
- 소스코드가 없으면 어노테이션을 걸지 못한다
- 소스코드가 있으면 어노테이션을 사용하고, 소스코드 없으면 xml 설정을 사용
- Test 코드 만들 때는 뒤에 s 붙이는게 미덕?..?
- Test는 빨리 돌려서 결과를 확인
- DataSource Test 진행
import static org.junit.Assert.fail;
import java.sql.Connection;
import javax.sql.DataSource;
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 {
@Autowired
private DataSource ds;
@Test
public void testConnection() {
try (Connection con = ds.getConnection()){
log.info(con);
}catch(Exception e) {
e.printStackTrace();
log.error(e.getMessage());
}
}
}
- 데이터 베이스를 연결하고 싶으면 커넥션 풀을 쓰는게 좋다. 속도, 안정성 모든 면이 우수
728x90
'학교에서 스프링 - 코드로 배우는 스프링 웹 프로젝트 (개정판)' 카테고리의 다른 글
1~2장 설치 및 환경설정 (0) | 2023.03.20 |
---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- mircrosoft visual studio
- 다른데서 react
- reactApp
- 다중체크박스 처리
- ID
- CheckBox
- commit 에러
- reactStart
- selectbox
- 서버전송
- 셀프로젝트
- C언어
- React
- App
- 제약조건
- 씹어먹는 C 언어
- 셀렉트박스
- 체크박스
- C
- optional
- th:selected
- @RequestParam
- 받아오기
- @reqeustBody
- 아이디
- @Builder
- react 시작 오류
- findFirstBy
- SCP
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함