[MyBatis] selectKey란 무엇인가 + 사용법
·
궁금하다
selectKey란?간혹 insert 작업하기전에 select한 값이 필요하거나, insert한 후에 생성값이 필요한 경우가 있다.이런 경우 java에서쿼리를 여러번 실행시키면 해결 할 수 있다.하지만 이 방법의 경우 불필요하게 여러번 db입출력하여 속도가 약간 느려지기도 하고 작성하기 복잡하기도 하다.이경우 selectKey를 사용하면 한번에 실행시킬수 있다.selectKey 사용법selectKey는 옵션에 따라 2가지 방식으로 사용할 수 있다.order="BEFORE" : 삽입 쿼리 실행 전에 selectKey 쿼리가 실행된다. order="AFTER" : 삽입 쿼리 실행 후에 selectKey 쿼리가 실행된다.selectKey에는 order 속성이외에 keyProperty, resultType가 있..
@RequestParam와 @PathVariable의 차이점
·
궁금하다
RestAPI를 공부하던 중 @RequestParam와 @PathVariable의 차이점이 궁금해졌다."겉보기에는 모양만 다른것 같은데 뭐가 다른거지" 하며 인터넷을 찾아보니 약간 두리뭉실하며 잘못된 정보가 있는 것 같아 정리해보고자 한다.저 또한 틀릴 수 있으니 잘못된 것이 있으면 언제든지 지적 부탁드립니다@RequestParam @RequestParam는 "naver.com/example?{키1}={값1}&{키2}={값2}" 형식의 url의? 뒷부분의 쿼리스트링을 사용한다.URL이 "/example?username=Guest" 인 경우@GetMapping("/example")public String example1(@RequestParam(value = "username") String name) {..
[JAVA] 백준-1874 스택 수열
·
알고리즘
문제https://www.acmicpc.net/problem/1874스택을 이용하여 문제를 풀 수 있다.배열을 통해 스택을 구현하여 푸는 방법과 스택 클래스를 이용하는 방법을 제시하겠다.만약 스택이 잘 이해되지 않는다면 이곳에 자세하게 설명되어 있으니 꼭 보고 오길 바랍니다. 기본적으로 풀 방법으로는 실제로 스택을 이용하여 직접 입력된 값이 가능한지 일일이 넣었다 빼는 방식이다. 값이 입력되면 스택에 입력된 숫자까지 순차적으로 저장한 뒤에그 입력된 값을 뺀다.그 후에 입력된 값이 스택의 끝부분과 맞지 않다면 뺄 수 없기 때문에 NO를 출력한다.예제 2번을 예로 들어 보자면1이 입력되었으니 1을 push한뒤에  1을 pop 한다..2가 입력되었으니 2를 push한뒤에  2를 pop 한다.5가 입력되었으니 ..
[Java] 소수 찾기 - 에라토스테네스의 체
·
알고리즘
[Java] 소수 찾기 - 에라토스테네스의 체에라토스테네스의 체는 에라토스테네스가 만들어 낸 소수를 찾는 방법이다이 방법은 마치 체로 치듯이 수를 걸러낸다고 하여 '에라토스테네스의 체'라고 부른다.2부터 시작하여 자기 자신을 제외한 배수를 제거하며 소수를 찾는다.  특정한 범위에 있는 소수를 찾을때 효율적인 방법이다.다만 주어진 수가 소수인지를 판별할때는 더 효율적인 방법(밀러-라빈 소수 판별 알고리즘)이 있으므로 특정한 범위에 있는 소수를 찾을때만 사용하도록 해야한다. 첫번째 for문에서 i*ipublic class Main { public static void main(String[] args) { int N=100; //N까지의 소수 int[] a= new int[N+1]; for(int ..
[JAVA] 백준-11866 요세푸스 문제 0
·
알고리즘
https://www.acmicpc.net/problem/11866List를 이용한 방법과 Queue를 이용한 방법을 서술하겠다1. List를 이용한 방법더보기여담으로 삽입과 삭제가 빈번할 경우 LinkedList가 이론적으로는 좋지만 크게 체감할 정도가 아니며, 이미 코드를 작성했기때문에 아래 코드에는 ArrayList를 사용했다.자세하게 알고 싶으면 이곳으로...먼저 ArrayList를 이용하여 순서를 저장한다.tmp로 삭제할 인덱스를 저장한뒤에  StringBuilder 변수에 ArrayList의 삭제와 동시에 저장을 한다.위의 과정을 반복하며 ArrayList의 크기가 1이 될때까지 반복문을 돌린 뒤에  출력하면 된다. "7 3"을 입력했을때를 예로 들어보자면1, 2, 3, 4, 5, 6, 7tm..
[JAVA] 백준-10814 나이순 정렬
·
알고리즘
https://www.acmicpc.net/problem/10814 3가지의 풀이 방법을 성능 순서로 작성하겠다. 1. String[ ][ ] + Arrays.sort( )나이와 입력을 2차원 String 배열에 입력받고 Arrays.sort( )를 이용하여 정렬한 뒤 출력하는 방법이다. 람다식으로 Comparator인터페이스 compare를 구현하여 2차원 배열이 정렬되도록 하였다.다만 출력를 반복적으로 하기 때문에 성능이 좋지 않다.난생처음 보는 시간을 보고 충격을...import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;public class Main..
[JAVA] 유클리드 호제법_최대공약수와 최소공배수 구하기
·
알고리즘
최대 공약수만약 12, 18의 최대 공약수를 찾고자 한다면, 간단하게 두 수의 약수를 모두 나열한다.12:1, 2, 3, 4, 6 ,1218:1, 2, 3, 6 ,9 ,1812와 18의 공약수중 가장 큰 수인 6이 최대 공약수가 된다.다만 이 방법으로 큰 수들의 최대공약수를 찾으려면 매우 오랜 시간이 걸릴 것이다.따라서 유클리드 호제법으로 해결하면 된다.유클리드 호제법두 양의 정수 a,b (a>b)에 대하여 a=bq+r(0≤r이라 하면, a,b의 최대공약수는 b,r의 최대공약수와 같다.gcd⁡(𝑎, 𝑏)=gcd⁡(𝑏, 𝑟) 즉, 𝑟=0이라면, 𝑎,𝑏의 최대공약수는 b가 된다. 위의 정리를 활용하면 최대 공약수를 간단하게 구할 수 있다.한마디로 r이 0이 될 때까지 계속해서 a에 b값을 다시 ..
[JAVA] 백준-1676 팩토리얼 0의 개수
·
알고리즘
https://www.acmicpc.net/problem/1676 문제    N!에서 뒤에서 부터 0이 아닌 숫자가 나올때 까지 0의 개수를 새는 문제이다.예를들어 10!은 3628800이므로 0이 2개이다.내가 처음 생각한 방법과 그후 찾은 더 효울적인 방법을 작성하겠다. 뒷자리가 0이 나오는 경우는 곱하기 10을 했을 경우이다. 즉 2와 5가 곱했을 경우를 뜻한다.따라서 다음의 코드는 1부터 n까지의 수들의 약수들 중에 2와 5가 있는 경우를 센뒤에 10이 되려면 2와 5 둘다 있어야 하므로 count_2와 count_5중 작은 수를 출력하는 방법이다. import java.util.Scanner;public class Main { public static void main(String[] args)..
개발자가되고픈
'분류 전체보기' 카테고리의 글 목록 (2 Page)