2016/09 3

@PathVariable 여러개 주소 못찾는 경우

@PathVariable을 여러개 사용해서 매핑 시키려고 하는데 계속 dispatcher가 매핑을 못시킨다는 에러가 발생했다. No mapping found for HTTP request with URI 구글링으로도 안나오는데 운좋게 되는 방법을 찾았음 ㅠㅠ 내가 하려고 했던 주소의 형식은 이랬다. @PostMapping(value = "/product.{product_id}/book.{book_id}") public ResponseEntity addProduct( @PathVariable("product_id") int productId, @PathVariable("book_id") int bookId) { // code } 계속 404... 해결법 @PostMapping(value = {"/produ..

개발/Spring 2016.09.29

Java String split 또는 replace 할 때 .(Dot, 점) 안되는 현상

내가 split 하려고 했던 문자열이 아래와 같다고 하면, String text = "aaa.111"; . (dot)로 split을 하려고 했다. String[] result = text.split("."); System.out.println(result.length); 결과는 몇일까? .을 기준으로 aaa와 111로 나눠지기 때문에 2가 나와야 정상이지만, 0이었다. 이유는 .(dot)는 정규식 예약어이기 때문이다. \n(개행문자)를 제외한 모든 문자를 의미한다. 따라서, String[] result = text.split("."); 이 문법은 모든 문자를 각각 다 split 하면서 하나씩 다 없어져버린 것이다. 그래서 원하는대로 하기 위해서는 \\. 으로 수행해야한다. \

개발/JAVA 2016.09.29

timestamp의 가장 큰 값

Mysql의 timestamp 컬럼을 쓰고 있는데, 큰 수의 년도를 저장하려고 시도했더니 Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: 이런 에러가 발생했다. https://dev.mysql.com/doc/refman/5.5/en/datetime.html Mysql 레퍼런스에 따르면 timestamp는 '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC. 이 시간의 범위를 저장할 수 있다고 한다. 애매한 시간인 2038년 1월 19일까지인 이유는 초를 4byte로 저장하기 때문이고, 그 max 값이 저 날짜이기 때문이다. 현재 timestamp의 가장 ..

개발/Database 2016.09.12