본문으로 바로가기

[Android]안드로이드 SPRING DB연동(Retrofit2)



Retrofit2을 사용하는법은 건너뛰고 안드로이드에서 회원가입을 해서 SPRING 을 통해서 DB에 값을 넣기위한 동작을 하겠습니다.


일단 안드로이드에ㅅ 회원정보데이터를 입력후 데이터를 넣을 DTO 클래스를 만들어줍니다.



그리고 회원가입 Activity에서 아래와 같이 EditText에 정보를 다 입력 후 회원가입 버튼을 누르면 아래의 코드가 실행됩니다.




EditText에 입력한 값들을 dto객체에 set메서드를 통해 데이터를 저장합니다.


그리고 Gson을 이용해서 데이터를 보낼건데 먼저 Gradle에 가서 밑 사진의 두개의 dependency를 추가합니다.

implementation 'com.squareup.retrofit2:converter-gson:2.2.0'
implementation 'com.google.code.gson:gson:2.3'

추가 후 주석에 있는 것 처럼 Gson객체를 선언해 주고 Spring에 Json형식으로 보내주기 위해 dto 객체를 gson객체의 메서드인 toJson에 넣어줍니다.








apiService에 정의되어있는 goPost메서드에 objJson(json형식데이터를 넘겨줍니다.) 그러면 apiService에서 goPost메서드에 들어와 objJson을 들고 

POST방식으로 매핑된 주소가 'signup'인 Spring 의 Controller에 있는 주소로 접근합니다.



(위 사진은 apiService 인터페이스에 정의되어있는 코드입니다.)


그럼 Spring에서 Json형식으로 받읍시다.


Spring에서도 Gson라이브러리를 사용하면 dependendy를 추가해야합니다.


pom.xml에


<dependency>

  <groupId>com.google.code.gson</groupId>

  <artifactId>gson</artifactId>

  <version>2.8.5</version>

</dependency>


를 추가합니다.


그리고 Controller에 가서 RequestMapping을 아래와 같이 해줍니다.  




signUp메서드의 매개변수는 Json형식을 String으로 받습니다.


그 후 안드로이드와 똑같이 Gson에 있는 메서드를 사용하기 위해 객체를 만든 후

Json형식을 객체형식으로 변환해줍니다.

그리고 Service객체의 signup메서드에 dto객체를 줍니다. 

service -> dao -> mapper.xml에서 데이터 처리를 합니다.


INSERT를 하였으니 1개의 row가 추가되었으니 1이 return 됩니다.


데이터도 성공적으로 들어가있습니다.