본문 바로가기

Programming/Java & JSP & Spring

[Java] 날짜 비교 날짜 순으로 정렬하는 문제에서 이용해야할 때가 종종 있다. 우선 SimpleDateFormat 으로 Date형식으로 만드는 것이 첫 번째 단계이다. 그 후, compareTo 함수를 사용하거나 getTime()을 이용해 long값 변환 후 비교하는 두 가지 방법이 있다. 1) Long 값으로 변환 후 비교 다음 코드는 ArrayList에 들어있는 객체 Edge들을 날짜를 비교해서 정렬하는 코드이다.여기서 Edge.getTime() 함수는 Date.getTime()이라고 생각하면 된다.Date.getTime()을 하면 Long타입의 데이터를 반환하게 되는데, 이를 비교하여 날짜를 정렬하는 방식이다."yyyy-MM-dd HH:mm:ss"의 형식으로 된 Date 타입을 비교할 때 유용한 것으로 보인다.Coll.. 더보기
[Java] 배열 생성과 초기화 자바에서 배열을 생성하고 초기화하는 방법에는 몇 가지 방법이 존재한다.일단 흔히 쓰이는 일반적인 방법은 다음과 같다.int[] arrayint = new int[10];위와 같은 방법으로 배열을 생성하면 자동으로 0으로 채워진 길이가 10인 배열을 생성한다. 0이 아닌 직접 값을 입력하여 초기화할 수 있다.int[] arrayint = new int[]{1, 2, 3, 4, 5, 6, 7,};위와 같은 방법으로 배열을 생성할 경우에는 배열의 길이를 지정하지 않아도 된다. 위와 같이 배열을 생성할 경우 굳이 new를 쓰지 않는 방법도 있다. int[] arrayint = {1, 2, 3, 4, 5, 6, 7,}; 더보기
[Java] 자주 쓰이는 형변환 자바에서 형변환은 변환하는 방식이 다양해 자주 까먹는다.그러므로 자주 쓰이는 형변환은 정리해놓는 것이 좋다. 1. int >> StringString str = Integer.toString(i); // or String str1 = "" + i;2. String >> intint i = Integer.parseInt(str); // or int j = Integer.valueOf(str).intValue();3. int >> charchar c = (char) i;4. char >> intint i = (int) c;5. String >> char[]char[] charlist = str.toCharArray();6. char[] >> StringString str = ""; String str1 = .. 더보기
[Spring Boot] JPA UPDATE JPA 에서는 UPDATE를 따로 지원해주지 않으므로 직접 쿼리 작성을 해야한다. 주의할 점은 쿼리문 위에 @Modifying 애노테이션을 붙여줘야한다는 점이다.@Modifying @Query("UPDATE user SET inquiry = inquiry + 1 WHERE userId = :userId") void updateInquiry(@Param("userId") Long userId); 하지만 위와 같이 작성했음에도 불구하고 오류가 나는 경우가 있다. 또 한가지 주의할 점은 대소문자에 주의해야한다.쿼리에서 테이블 명을 쓸 때는 해당 테이블과 매핑된 도메인의 클래스 명을 사용해야 한다. 예를 들어, user테이블과 매핑된 클래스(@Table(name="user")와 매핑된 클래스)가 User.jav.. 더보기
[JSON] KEY 값 추출해서 사용하기 JSON 값을 받아서 파싱을 해야하는데 KEY 값을 모르는 경우가 있을 수 있다.KEY값 추출은 JSONObject 안의 개수가 때마다 일정하지 않을 때 주로 사용된다. 다음과 같은 json 데이터를 받는다고 가정해보자 {"fruit": {"apple": "500원","banana": "200원","watermelon": "300원","peach": "350원","strawberry": "50원","orange": "200원"}} 과일 이름으로 된 key값을 받아오려면 keys() 메소드와 Iterator 반복자를 사용해서한번에 받아올 수 있다. try { JSONObject jsonObject = new JSONObject(fruitList); String fruitValue = jsonObject.g.. 더보기
[Java] String, Date 타입 간의 변환 String 》》 DateDateFormat sdFormat = new SimpleDateFormat("yyyyMMdd"); Date tempDate = sdFormat.parse("20170817"); ※ 주의할 점 : 포맷 타입에 맞게 String 데이터가 입력되어야 파싱이 된다. Date 》》 StringDateFormat sdFormat = new SimpleDateFormat("yyyyMMdd"); Date nowDate = new Date(); String tempDate = sdFormat.format(nowDate); ※ 주의할 점 : 포맷 형식대로 리턴된다. ※ 출처 : http://sdw8001.tistory.com/130 더보기
[Spring] 예외처리 Exception Handling in Spring MVC(원문소스: HTTPS://SPRING.IO/BLOG/2013/11/01/EXCEPTION-HANDLING-IN-SPRING-MVC)Spring MVC는 예외처리를 위한 몇가지 훌륭한 접근법을 제공해주지만 Spring MVC를 가르칠때 학생들이 종종 헷갈려하거나 불편해한다는 것을 알았다.이 글에서 이를 위해 사용가능한 다양한 옵션을 보여줄 것이다. 우리의 목표는 가능한한 컨트롤러 메소드에서 명시적으로 예외처리를 하지 않는 것이다. 이들의 횡단관심사cross-cutting concern는 전용코드에서 별도로 처리하는 더 나은 방식을 제공해준다.3가지 옵션이 있다: 예외별, 컨트롤러별, 전역별 per exception, per controller or.. 더보기
[SpringBoot] 프로퍼티 이용하기 스프링부트가 자동으로 구성하는 빈들은 세부적인 부분을 조정할 수 있도록 300개가 넘는프로퍼티를 제공한다. 프로퍼티를 살펴보기 전에 먼저 아주 간단한 예제를 하나 살펴보자.애플리케이션을 실행할 때 스프링부트가 아스키아트 배너를 띄우는 것을 본 적이 있을 것이다.이 배너를 숨기고 싶다면 다음과 같이 지정해주면 된다. application.properties 파일을 생성하는 방법spring.main.show-banner=falseapplication.yml로 YAML파일을 생성하는 방법spring:main:show-banner: false※ 이 때, 들여쓰기를 안해주면 에러가 발생하는 것에 주의하자! 위의 방법말고도 스프링 부트 애플리케이션에 프로퍼티를 설정하는 방법은 여러가지다. 자동 구성 미세하게 조정앞.. 더보기