라벨이 Java인 게시물 표시

[Java] Date 클래스의 get(Year|Month|Day)가 deprecated됐다는 알림이 뜰 경우

  Date 클래스의 getYear, getMonth 등 수많은 메소드는 한참 전에 deprecated됐습니다. 따라서 여러분은 Calendar 클래스를 사용하셔야 합니다.   Calendar 클래스는 아래와 같이 사용할 수 있습니다. int year = Calendar.getInstance().get(Calendar.YEAR); int month = Calendar.getInstance().get(Calendar.MONTH) + 1; int day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);   잘 보시면, month는 Calendar.get 값에 +1 한 것을 알 수 있습니다. 이유는, Calendar.get(Calendar.MONTH)할 경우 연중 현재 월의 순번 을 나타내기 때문입니다. 예를 들어 1월은 0번째, 2월은 1번째, ...   때문에 1월, 2월과 같이 현재 월명을 구하고 싶으실 때엔 Calendar.get(Calendar.MONTH) + 1 해줘야합니다.

[MySql] 연결 문자열에서 타임존 설정

  Spring MVC 작업 중 아래와 같은 에러가 발생했습니다. CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: The server time zone value    context-datasource.xml에 연결 문자열에 serverTimezone을 설정하라고 스택오버플로우에서 말하더군요. 문제는 timezone을 뭐로 설정해야하는가? 였습니다.   우선 첫 번째로, 서버에서 사용중인 타임존을 알아야겠죠? SELECT @@global.time_zone, @@session.time_zone;   위와 같이 쿼리를 날렸더니, 둘 다 SYSTEM이란 답만 돌아왔습니다. 그래서 아래와 같이 해봤습니다. SELECT timediff(curtime(), utc_time());   결과는 09:00:00 였습니다. 서울이죠. 그래서 serverTimezone=Seoul 이라고 했더니 안 되더라고요. 구글로 검색해본 결과 앞에 대륙명까지 적어야 한다는 것을 깨달았습니다. 참고: 위키피디아   serverTimezone=Asia/Seoul 로 설정하니 정상 작동되는 것을 확인했습니다.

MySQL 데이터 타입과 Java 데이터 타입 비교/매칭

  안녕하세요? 혼살입니다. 블로그에 정말 오랜만에 글을 씁니다. 일하고 겜하고 일하고 겜하고 집에 박혀서 매일 똑같은 일상을 보내다 보니 블로그에 글을 오랫동안 안 쓰고 있었네요. 대부분 근황은 유튜브 동영상으로 대체하다 보니 더욱 더 그랬던 것 같습니다.   하지만 이번엔 영상보다 글로 남기는 게 더 유익할 것 같아 간만에 글을 쓰게 되었습니다. 바로 MySQL Data Types & Java Data Types 매칭! 현재 진행중인 외주 작업 중 SET 타입을 Java에선 어떻게 처리하나 찾아보다가 잘 정리된 블로그 글 을 발견해 나중에 손쉽게 찾기 위해 제 블로그에도 씁니다. 위 링크에 들어가시면 테이블로 잘 정리돼 있으니 한 번 들어가 보시는것도 괜찮겠네요. 왼쪽은 MySQL, 오른쪽은 Java의 데이터 타입입니다. BIT Boolean TINYINT Integer BOOL/BOOLEAN (TINYINT(1)) Integer SMALLINT Unsigned 상관없이 Integer MEDIUMINT Integer, Unsinged라면 Long INT Integer, Unsigned라면 Long BIGINT Long, Unsigned라면 java.math.BigInteger FLOAT Float DOUBLE Double DECIMAL java.math.BigDecimal DATE java.sql.Date DATETIME java.sql.Timestamp TIMESTAMP java.sql.Timestamp TIME java.sql.Timestamp YEAR yearsIsDateType이 설정됐다면 java.sql.Date, 아니라면 Short CHAR 컬럼이 Binary로 설정되지 않았다면 String, 돼 있다면 byte[] VARCHAR CHAR와 동일 BINARY byte[] VARBINARY byte[] TINYBLOB byte[] TINYTEX...

[JSP] 서블릿에서 리다이렉트 시키는 방법

  JSP를 가지고 코딩하다 보면 의외로 서블릿을 쓰는 경우가 되게 많습니다. 그러다 보면, 서블릿에서 바로 클라이언트를 리다이렉트 시켜야 하는 경우도 생기게 마련이죠. 그래서 서블릿에서 리다이렉트 시키는 방법을 알아보니 의외로 간단하더군요. HttpServletResponse.sendRedirect(String url)   위와 같이 쓰시면 됩니다. 쉽게 예제를 보면, protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); session.setAttribute("loginInfo", null); response.sendRedirect("/"); }   이렇게 쓰이게 되죠.

IntelliJ Idea에 JDBC Driver를 추가해도 ClassNotFoundException이 뜰 경우

이미지
  IntelliJ를 어제 설치하고 사용하는 중 SQLite를 쓸 일이 생겨서 SQLite JDBC 드라이버를 다운 받고 라이브러리에 추가한 후 웹 서비스를 시작해봤는데 ClassNotFoundException이 떠서 왜 그런가 찾다가 결국 방법을 알아내서 공유합니다.   해결 방법은 매우 간단합니다. 프로젝트 설정(기본값: Ctrl + Alt + Shift + S)에 들어가셔서 Problems 항목의 sqlite jdbc 드라이버 관련 문제를 Fix해주면 됩니다. 참 쉽죠?