반응형

 

연습문제 링크

programmers.co.kr/learn/courses/30/lessons/12922#programmers.co.kr/learn/courses/30/lessons/12922?language=java

 

코딩테스트 연습 - 수박수박수박수박수박수?

길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조

programmers.co.kr

 


 

문제

길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하기

 

제한조건

n은 길이 10,000이하인 자연수

 

작성코드

class Solution {
    public String solution(int n) {
        String answer = "";
        
        //작성 부분
        for(int i=0;i<n;i++){
            answer += (i % 2 != 1) ? "수" : "박";
        }
        
        return answer;
    }
}

 

 

끝!

반응형
반응형

 

DTO란?

 

계층간 데이터 교환을 위한 객체(Java Beans)

로직을 갖고 있지 않는 순수한 데이터 객체이며, DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용

 


 

1. DTO 클래스 작성

DTO 클래스 작성하여 @Data 어노테이션 이용

아래와 같이 작성

package com.test1.domain;

import lombok.Data;

@Data
public class SampleDTO {
	
	private String name;
	private int age;

}

( Lombok의 @Data 어노테이션을 통해 getter/setter, equals(), toString() 등의 메서드가 자동 생성 )

 

 

 

 

2. Controller에서 SampleDTO를 파라미터로 사용

 

자동으로 setter 메서드가 동작하며 파라미터를 수집

package com.test1.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.test1.domain.SampleDTO;

import lombok.extern.log4j.Log4j;

@Controller
@RequestMapping("/sample/*")
@Log4j
public class SampleController {	
	@GetMapping("/ex01")
	public String ex01(SampleDTO dto) {
		
		//log로 확인
		log.info("" + dto);
		
		//클래스명으로 return
		return "ex01";
	}	
}

 

 

 

 

 

 

3. 로그 확인

 

@GetMapping 어노테이션을 사용했으므로 URL 뒤에 직접 쿼리스트링 작성

( http://localhost:8080/sample/ex01?name=abc&age=111 )

사진 하단에 DTO 객체의 속성이 제대로 수집된 것을 확인

 

 

 

 

 

끝!

 

반응형
반응형

 

Mybatis란?

객체 지향 언어인 자바의 관계형 데이터 베이스 프로그래밍을 보다 쉽게 도와주는 프레임워크

 


 

Mybatis관련 라이브러리 추가

pom.xml을 수정

 

<!-- MyBatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.6</version>
		</dependency>
		
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.2</version>			
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>

spring-jdbc/spring-tx : 스프링에서 데이터베이스 처리와 트랜잭션 처리

mybatis/mybatis-spring : MyBatis와 스프링 연동용 라이브러리

 


 

 

SQLSessionFactory란

SqlSessionFactory는 데이터베이스와의 연결과 SQL의 실행에 대한 모든 것을 가진 가장 중요한 객체이며,

이 객체가 DataSource를 참조하여 MyBatis와 Mysql 서버를 연동

 

root-context.xml 설정

 

<!-- SqlSession 설정 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
	</bean>

 


 

Mapper인터페이스

 

root-context.xml 파일을 열고,

하단 'Namespaces' 탭에서 'mybatis-spring' 체크

<mybatis-spring:scan> 태그의 base-package 속성은 지정된 패키지의 모든 MyBatis 관련 어노테이션을 찾아서 처리

 

 

끝!

반응형

'Java > 라이브러리' 카테고리의 다른 글

Lombok 라이브러리 설치  (0) 2021.01.07
반응형

 

HikariCP란

Database Connection pool을 관리해주는 라이브러리


라이브러리 추가

pom.xml을 수정

<!-- HikariCP -->
<dependency>
   <groupId>com.zaxxer</groupId>
   <artifactId>HikariCP</artifactId>
   <version>2.7.4</version>
</dependency>

 

 

DataSource설정

 

root-context.xml 수정

아이디와 패스워드 부분은 DB에 접속 할 아이디/패스워드를 기입

    <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="아이디"></property>
		<property name="password" value="패스워드"></property>
	</bean>
	
	<!-- HikariCP configuration -->
	<bean id ="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
		<constructor-arg ref="hikariConfig" />
	</bean>

 

 

끝!

반응형

'Java > JDBC' 카테고리의 다른 글

JDBC & Connection pool  (0) 2021.01.07
반응형

 

 

JDBC란?

 

Java Database Connectivity

자바에서 DB 프로그래밍을 하기 위해 사용되는 API

 

 


 

JDBC에 연결하기 전 DB설치를 안했다면 아래의 링크를 다녀오자

mgyum.tistory.com/10?category=916822

 

Oracle XE 기본설치

1.1 Oracle 11gXE 다운로드 아래의 링크를 통해 다운로드 및 설치 오라클 계정으로 로그인 해야지 다운로드가 가능하다. (오라클은 학습용으로 사용은 무료지만, 상업적으로 사용은 유료) https://www.or

mgyum.tistory.com

 


 

 

프로젝트에 JDBC 연결

 

프로젝트 우클릭 후 Properties 클릭

Java Build Path 클릭 후 Libraries탭 확인

 

 

 

우측에 'Add External JARS...' 클릭

sqldeveloper 설치경로 jdbc/lib 밑에 ojdbc6.jar 파일 선택

 

 

 

추가 된 것을 확인

우측하단 Apply 클릭

 

 

 

Deployment Assembly 로 이동

 

Add버튼 클릭

 

 

 

 

Java Build Path Entries 클릭

 

Next 클릭

 

 

 

ojdbc6.jar 선택

 

Finish 클릭

 

 

추가 된 것을 확인

 

Apply and Close 클릭

 


Connection pool

Connection pool 이란?

웹 컨테이너(WAS)가 실행되면서 DB와 미리 연결을 해놓은 객체들을 pool에 저장해두었다가

클라이언트 요청이 오면 커넥션을 빌려주고, 처리가 끝나면 다시 커넥션을 반납받아 pool에 저장하는 방식을 말합니다.

사용하는 이유

커넥션 객체를 생성하는 시간이 오래 걸리는데 그 부분에 대한 비용과 대기 시간을 줄이기 위해서

 

참조용 사진 : https://medium.com/@m.emmanuel/3-simple-steps-to-properly-use-database-pooling-using-java-and-oracle-18c-xe-ce0bba4702ae

 

 

끝!

 

 

 

반응형

'Java > JDBC' 카테고리의 다른 글

HikariCP  (0) 2021.01.07
반응형

 

라이브러리란?

 

소프트웨어 개발 시 사용되는 프로그램의 구성요소로, 공통으로 사용될 수 있는 특정한 기능(들)을 모듈화한 것이다.

대상 환경(플랫폼)에서 바로 실행될 수 있는 형태로 제공되는 것

 

 


 

Lombok 라이브러리

 

Java 라이브러리로 반복되는 getter, setter, toString() 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리

 

 

 

Lombok 라이브러리 다운로드

 

아래의 링크에서 jar 파일 형태로 다운로드 (현재 1.18.16버전)

https://projectlombok.org/download

 

Download

 

projectlombok.org

 

 

Lombok 라이브러리 설치

 

명령프롬포트를 통하여 다운로드 경로에서 아래와 같은 명령어로 실행

 

'C:\Users\pocket5004\Downloads>java -jar lombok.jar'

 

 

화면에 필요한 IDE 체크확인

확인 후 Installer / Update 를 클릭

(만일 Eclipse의 설치 경로를 찾지 못 할 경우 직접 설정하여 설치)

 

 

 

이클립스 경로에 lombok.jar 파일이 추가 된 것을 확인

정상설치 후 확인

 

 

끝!

 

반응형

'Java > 라이브러리' 카테고리의 다른 글

Mybatis  (0) 2021.01.07

+ Recent posts