본문 바로가기

✨ Back-end173

[Spring] 스프링 부트 mySql mybatis 연동하기 (gradle) mySQL 위 데이터들을 콘솔에 뿌려볼 것이다. 1. build.gradle HTML 삽입 미리보기할 수 없는 소스 위 코드를 build.gradle에 있는 dependencies에 복붙해주자. (추가 한뒤 리프레쉬 해야함.) 2. application.properties HTML 삽입 미리보기할 수 없는 소스 위 코드를 application에 복붙해준다. 이때 url에 있는 bitdb는 왼쪽 사진에 있는 테이블 명을 나타내고, username과 password는 root 계정과 그 비밀번호를 나타냈다. 또한 mybatis 경로를 설정해주어야하는데, 노란색 표시와 같이 경로를 잘 지정해주자. member-mapper.xml MemberVO mapper와 대입될 데이터들을 만들어준다. service Con.. 2023. 9. 15.
[Spring-Legacy] validate 유효성 검사 jsp jsp에서 input 태그의 name과 age, 그리고 js에서 여기에 데이터를 입력 후 serialize를 통해 ajax로 넘긴다. VO와 컨트롤러 ValidateModel이라는 객체를 만들어, input 데이터를 받아주기 위해 name과 age를 만들었고, 컨트롤러 ajax에서 modelAttribute로 받아 콘솔에 찍어볼 것이다. 데이터를 찍어보니 잘 나온다. ValidaterTest ValidaterTest 클래스를 만들어, Validator를 구현시켜준다. 그리고 오버라이드를 시켜주고, 오른쪽과 같이 return을 수정한다. 이렇게 지정해야 해당 모델을 검사해준다. ValidaterTest 문자를 계산하는 StringUtils는 org.springframework.utl을 사용해준다. .. 2023. 9. 14.
[Spring-Legacy] XML로 Interceptor 인터셉터 사용하기 interseptor.jsp 로그인 버튼을 누르면, 컨트롤러에 있는 loginInterChk로 이동할 것이다. 컨트롤러 컨트롤러로 오게되면 콘솔창에 loginInterProcess Controller 를 출력하고, 페이지 이동을 한다. 인터셉터 컨트롤러 컴포넌트의 value를 inter로 지정해주고, 이를 다른곳에서 참조하게 되면 인터셉터가 실행되는 것이다. servlet-context.xml 1. xml에서 인터셉터를 등록해주고, 2. mapping 시키는 곳에 path를 적용시킬 컨트롤러 주소, 3. bean을 인터셉터 value 값을 대입. 해당 페이지에서 LOGIN을 눌르면, 콘솔창에 preHandle, postHandle, afterCompletion 모두 나오는 걸 볼 수 있다. 인터셉터 컨트.. 2023. 9. 14.
[Spring] SessionAttribute 보호되어 있는 글 입니다. 2023. 9. 14.
[Spring] 구글 차트 DB에 넣어 Ajax로 시각화하기 https://developers-dot-devsite-v2-prod.appspot.com/chart/interactive/docs/gallery/piechart?hl=ko 시각화: 원형 차트 | Charts | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 시각화: 원형 차트 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 개요 SVG developers.google.com 구글 차트로 데이터를 시각화시켜보았다. 방법1. (Iterator 사용하고,, 어려운 방법이니 추천하지 않는다.) ajaxDemo3.jsp HTML 삽입 미리보기할 수 없는 소스 : Goog.. 2023. 9. 14.
[Spring] thymleaf에서 제공하는 th:object 와 th:field th:object 에서 사용할 객체를 지정한다. form에서 th:obejct="${item}" 을 지정하고, th:field="*{itemName}"과 같이 넣어주게 되면 id, name, value 속성을 모두 자동으로 만들어준다. th:object = "${item}" 이렇게 받아주고, form 안에 있는 태그들에게 th:field를 주고, *{객체에 있는 변수명} 을 작성해주면, id와 name 값이 지정된다. 이렇게 th:field="*{itemName}"을 작성해주고 나니, 실행된 웹 브라우저에서 id와 name 값이 itemName으로 세팅됐다. th:field는 id, name, value 값을 지정해주는데, 현재 input의 value 값은 비어있으므로 "" 이 출력된다. input 태그.. 2023. 9. 13.
[Spring] Ajax 다양한 방법, @ResponseBody와 @RequestBody 컨트롤러 HTML 삽입 미리보기할 수 없는 소스 jsp, js HTML 삽입 미리보기할 수 없는 소스 다음과 같은 코드가 있다. EX1) 버튼을 클릭하게되면, console창에 'basicAjax1/ajaxData1' 이라는 문자열을 출력해보고자 한다. js에서 jQuery를 이용해 컨트롤러로 한번 거친다음, 컨트롤러에서 단순 문자 'basicAjax1/ajaxData1' 를 갖고 돌아온다. 이 예제가 Ajax 데이터를 뿌리는 가장 기초적인 방법이다. Ex2) 두번째 버튼을 클릭하게 되면, Map 형태로 Console에 데이터들이 나타난다. JS 데이터를 JSON 형태로 만들어 컨트롤러에 넘겨주는데, 이때 data를 JSON.stringify(jsonValue)를 지정해야한다. data: JSON.str.. 2023. 9. 13.
[Spring-Legacy] Ajax 사용시 with a status of 406 () 해결법 xml로 Ajax써서 Json으로 데이터를 다시 받기까지 고난에 고난의 연속이다. 드디어 해결이 됬다. 방법은 간단하다 porm.xml HTML 삽입 미리보기할 수 없는 소스 위 코드를 넣어주었다. servlet-context.xml 위 한줄을 추가해주면 DB에 저장된 데이터들이 아래 컨트롤러를 통해 성공적으로 Ajax로 넘어간걸 볼 수 있다. 컨트롤러 Ajax에서 갖고온 데이터 조회 후 조회된 결과값 반환한다. 2023. 9. 12.
[Spring-Legacy] 파일 데이터 업로드하기 multipart/form-data jsp multipart/form-data를 사용하는 경우, 폼 데이터는 일반적인 텍스트 데이터와 함께 이진 데이터(파일 업로드)를 포함하는 멀티파트 형식으로 전송된다. 이 형식을 사용하면 서버에서 이진 파일 데이터를 정확하게 해석하고 처리할 수 있다. 뷰 jsp 저장버튼을 누르면 이벤트가 발생되도록 하기위해 id에 save를 넣어주었다. jsp jQuery구문으로 클릭시 each를 이용해 각각 값들을 출력해본다. 작성자, 제목, 비밀에 대한 길이를 모두 조회하여 0이면 특정 이벤트가 발생되도록 할 것이다. jsp 이렇게 inputText 값을 넣어주고 저장을 눌렀는데 Controller 값이 안넘어 가있다. 왜그럴까? servlet-context.xml beans에 multipartResolver를 추.. 2023. 9. 8.
[Spring-Legacy] mybatis 연결하기 프로젝트 생성 Legacy 프로젝트를 하나 만들어준다. porm.xml HTML 삽입 미리보기할 수 없는 소스 porm.xml로 들어가서 해당 코드들을 dependencies 안에 위치하도록 붙여넣어주자. 삽입한 코드는 Maven 프로젝트에서 사용되는 의존성 설정이다. 이 의존성들은 프로젝트가 특정 라이브러리와 연결되고 이용할 수 있도록 도와준다. 1.mysql-connector-java 이 의존성은 MySQL 데이터베이스와의 연결을 가능하게 하는 JDBC 드라이버를 제공한다. 2. org.mybatis:mybatis Mybatis는 SQL 매퍼 프레임워크로, 데이터베이스와 상호작용하는데 도움을 준다. 3.org.mybatis:mybatis-spring MyBatis-Spring은 MyBatis와 Spr.. 2023. 9. 3.
[Spring] 타임리프 경로(URL) 설정 컨트롤러 model 객체를 이용해서 data1과 data2 라는 문자열을 param1과 2로 뷰에 뿌려주었다. 뷰 HTML 삽입 미리보기할 수 없는 소스 컨트롤러에서 받은 데이터를 타임리프로 받아 다시 컨트롤러에 던지는 방법에는 두 가지가 있다. 1. 쿼리 파라미터 @{ /hello(param1=${param1} , param2=${param2} ) } 이 데이터는 /hello?param1 = data1 & param2 = data2 로 표시될 수 있다. 경로 뒤에 소괄호( ) 를 붙여 데이터를 넣어주는 방식이고 쉼표( , ) 를 통해 & 역할을 대신해준다. 2. 경로변수 @{/hello/{param1}/{param2} (param1=${param1}, param2=${param2} ) } 이 데이터는 .. 2023. 9. 2.
[Spring] LocalDateTime.now( ) 써서 시간 구하기 LocalDateTime.now( ) 란? Java 8 이상에서 제공되는 클래스로 현재 로컬 시간을 얻기 위한 메소드이다. 이 메소드는 현재 로컬 시간을 시스템 시계로부터 얻어온다. 다양한 오버로드를 가지고 있어서 , 시계를 사용하지 않고 기본적으로 시스템의 디폴트 시계를 사용할 수 있다. 컨트롤러 LocalDateTime.now( ) 를 호출하면 현재 시간 정보가 포함된 LocalDateTime 객체가 반환된다. 이 객체를 사용해 날짜 및 시간 정보를 추출하고 원하는 형식으로 출력하거나 다양한 연산을 수행할 수 있다. 뷰 HTML 삽입 미리보기할 수 없는 소스 ${#temporals} 타임리프에서 제공하는 내장 객체중 하나이다. 이를 사용하면 날짜와 시간을 다루는 기능을 템플릿에서 수행할 수 있다. 2023. 9. 2.