nameAB 테이블에 저장되는 레코드들은 아래와 같은 컬럼들을 가집니다. key는 하나도 없습니다. 이 문제를 생각해 봅시다. name 별로 A가 최대일 때의 B값, A가 최소일 때의 B값을 가져와서 그것의 차이를 구하는 게 목표입니다. 단, A와 B는 0이상 32768 미만의 정수입니다. 그리고, 임의의 str, a에 대해서, 이름이 name이고, A값이 a인 레코드는 많아봐야 1개만 있다고 가정하겠습니다. 예를 들어서, name이 'tEq'라고 해 보겠습니다. 그러면 nameAB에서 다음과 같은 레코드들이 나옵니다. A값이 최소인 레코드의 B값은 1710이 나옵니다. A값이 최대인 레코드의 B값은 1233이 나옵니다. 이 두 값의 차이는 1233 - 1710 = -477입니다. 이 값을 name별로 ..
코딩 검색 결과
mysql에서 information_schema는 메타 데이터에 접근하기 위해서 씁니다. 예를 들자면, 어떤 테이블이 있는지. 어떤 collaction을 쓰는지, 컬럼이 뭐가 있는지 등이 속합니다. 이 중에, 오늘은 3번째 것을 잠깐 다뤄보도록 하겠습니다. 이것과 같이 공식 문서를 보시면 좋습니다. 문제는 다음과 같습니다. mydb에 있는 모든 테이블들에 대해서, 그것과 대응되는 Model 클래스들을 생성해 주세요. 물론, jdbc 프로그래밍에 익숙하시다면야. 조금만 고생하시면 되지만, 익숙치 않다고 하더라도, 할 수 있는 방법이 있습니다. 전 급할 때는 그냥 쿼리문만 날려서 파일로 저장한 뒤에 간단하게 파일 입출력을 하는 식으로 구현하기도 합니다. mydbinformation_schema 안에 있는 v..
오늘은, 아래와 같은 상황에서, 키가 중복해서 들어가 있다면, update를, 그렇지 않으면 insert를 하는 예제를 보도록 하겠습니다. 당연하게도, 이 문서를 같이 읽어보시는 것을 권해드립니다. 기존 테이블은 오래된 데이터입니다. 몇 데이터가 들어오는데, 이 중에는 '업데이트'가 된 데이터도 있습니다. 예를 들자면, id에 대해서. 그러한 경우에 어떻게 해야 할까요? postgresql에는 upsert가 있다고 하는데.. 문제부터 보겠습니다. sampleT는 아래와 같습니다. id와 name으로 정의가 되어 있고, id는 primary key입니다. sampleT에 추가되어 있는 데이터를 보도록 하겠습니다. select from을 이용하면 매우 간단하게 조회할 수 있습니다. 1, 'cho'하고, 2,..
저번 시간에 InputStream으로 파일을 읽는 것에 대해서 배웠습니다. 다시 1.txt를 보겠습니다. 이번에는 한글이 포함된 무언가가 있습니다. 이것은 UTF-8로 인코딩 되어 있습니다. 제가 저번에 작성했던 이 프로그램은, 의도대로 잘 동작할까요? 인풋의 크기에 비해서 버퍼의 크기가 상대적으로 크니 제대로 동작하는 것처럼 보입니다. b의 배열 크기를 5로 줄여보도록 하겠습니다. 이 프로그램을 실행시켜 보겠습니다. 그러면 글자가 깨져서 나옵니다. 이는, 2byte나 3byte 길이의 데이터를 읽다가 끊었기 때문입니다. 어떻게 읽어들였는지, 헥사로 출력해 보도록 하겠습니다. 요렇게 바꿔 보겠습니다. Integer.toHexString은, int 값을 Hexa로 출력해 주는 겁니다. 우리는 byte 값을..
파일 입출력을 다뤄봅시다. 사실, 예외나, 인터페이스를 하지도 않았는데 뜬금없이 이것을 다루는 이유는, 네. 맞습니다. 같이 다루기 위해서입니다. 여기에서는 파일을 읽는 것에 대해서만 중점적으로 다루고, 중간 중간에 예외나, 인터페이스에 대해 다루겠습니다. 그리고, 인코딩 디코딩도 중요하기 때문에 다시 한 번 짚고 넘어가겠습니다. 먼저, 1.txt에 저장된 내용을 보겠습니다. Hello Java, ... 이런 내용들이 들어 있습니다. 이 파일을 읽어서 콘솔에 그대로 출력하고자 합니다. 물론, src 아래에 1.txt가 있습니다. 파일 객체를 하나 생성합니다. src\\1.txt는 윈도우에서, 프로젝트의 루트로부터의 경로 /src/1.txt를 의미합니다. 파일객체 하나를 얻어옵니다. 그리고, try res..
최근댓글