이번 시간에는 지난 시간에 이어서, 안드로이드 폰에서 삭제시 실제 스프링(자바)기반의 DB에서도 삭제가 연동되는 프로그램을 작성하도록 하겠습니다.
우선결과화면부터 보시겠습니다.
안드로이드폰에서 kim3 아이디를 삭제하면, 1개가 삭제 되었다는 성공메세지가 나오고, 실제 스프링(자바)화면에서도 삭제된 결과를 확인 하실 수 있습니다.
=============== 여기서 부터는 스프링(자바) 부분
우선 삭제 결과를 리턴값으로 받으려면, 기존 스프링(자바)의 삭제에서 삭제 후 결과 값을 리턴 받을 수 있게 수정 해야 합니다. 기존에는 삭제가 void 형 이었는데요, 지금은 int 형으로 삭제 갯수를 결과로 리턴 받도록 하겠습니다.
스프링(자바) 수정부분
1. src/sample/member/MemberController.java 컨트롤러 파일에서
@RequestMapping("/delete/{username}")
public String deleteForm(@PathVariable String username, Model model) {
//memberService.delete(username);//기존 자바클래스
model.addAttribute("list", memberService.delete(username)); // 안드로이드연동용 리턴값 받을때
return "redirect:/member/list";
}
기존 자바클래스 부분을 주석처리후 아래에 //안드로이드연동용 리턴값 받을때 부분을 추가 합니다.
2. src/sample/member/MemberService.java 모델서비스 인터페이스 파일에서
기존 void delete(int id); > int delete(String username); 으로 변경 합니다.
3. src/sample/member/MemberServiceImpl.java 모델서비스 자바 파일에서 아래와 같이 return 값이 있게 매서드를 변경 합니다.
public int delete(String username) {
return dao.delete(username);
}
4. src/sample/member/MemberDao.java 데이터액세스클래스(DAO) 파일에서
void delete(int id); > int delete(String username); //void 형을 int 리턴형으로 변경 합니다.
5. src/sample/member/MemberDaoibatis.java 쿼리 호출을 담당하는 아이바티스 자바파일에서 void 에서 int 리턴형으로 변경 합니다.
public int delete(String username) {
return sqlMapClientTemplate.delete("Member.delete", username);
}
6. src/sample/ibatis/Member.xml 쿼리 파일에서 기존 id 파라미터를 username 파라미터로 변경합니다.
<delete id="delete" parameterClass="String">
delete from member where username = #username#
</delete>
위 쿼리에서 리턴형태인 resultClass 는 특별히 설정하지 않아도, delete, update는 실행된 갯수를 기본으로 리턴하게 됩니다.
================ 여기서부터는 안드로이드 스튜디오
SubActivity.java 파일에서
ListView 선택위젯의 onItemClick 액션의 deleteListener 부분에서
기존
public void onClick(DialogInterface arg0, int arg1){
//선택한 회원을 리스트에서 삭제한다.
names.remove(someParameter);
// Adapter에 데이터가 바뀐걸 알리고 리스트뷰에 다시 그린다.
adapter.notifyDataSetChanged();
});
수정 후
public void onClick(DialogInterface arg0, int arg1){
//DB삭제
String url = "http://192.168.0.3:8080/member/delete/"+data+".json"; //스프링(자바)한경일때
PostResponseAsyncTask readTask = new PostResponseAsyncTask(SubActivity.this, new AsyncResponse() {
@Override
public void processFinish(String s) {
//Toast 팝업창으로 스프링(자바)의 result 값을 출력 합니다.
String jsonString = s.substring(s.indexOf(':')+1, s.indexOf('}'));//스프링(자바)환경일때
Toast.makeText(SubActivity.this, jsonString, Toast.LENGTH_LONG).show();
int numInt = Integer.parseInt(jsonString);//삭제갯수 숫자로 변환
if (numInt > 0) { //스프링(자바)환경일때
Toast.makeText(SubActivity.this, s+"DB삭제성공", Toast.LENGTH_LONG).show();
//선택한 회원을 리스트에서 삭제한다.
names.remove(someParameter);
// Adapter에 데이터가 바뀐걸 알리고 리스트뷰에 다시 그린다.
adapter.notifyDataSetChanged();
//화면리프레쉬가 필요하면 아래와 같이 3출 추가...
Intent intent = getIntent();
finish();
startActivity(intent);
} else {
Toast.makeText(SubActivity.this, s+"DB삭제실패", Toast.LENGTH_LONG).show();
}
}
});
안드로이드폰과 스프링(자바)와의 삭제 연동프로그램은 여기까지 입니다.
이후에 계속이어서 입력,수정 부분을 작업 하도록 하겠습니다.
다음 작업을 진행하기 전에 스프링(자바)에서 SSO 인증에 대한 부분을 심화 학습하도록 하겠습니다.
참조 URL: http://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwissOrCn4jKAhVnE6YKHVfOCHEQFggaMAA&url=http%3A%2F%2Fwww.egovframe.go.kr%2Fwiki%2Fdoku.php%3Fid%3Degovframework%3Acom%3Av2%3Auat%3Asso%25EC%2597%25B0%25EA%25B3%2584_%25EC%2584%259C%25EB%25B9%2584%25EC%258A%25A4&usg=AFQjCNGI5fYC3m1-XuwkNq1PTQ9eujyBvw&bvm=bv.110151844,d.dGY
아두이노ADK + 안드로이드 프로젝트 개발-환경구축 (0) | 2016.01.20 |
---|---|
스프링 시큐리티 프레임워크 (0) | 2016.01.02 |
R&D 2016 프로젝트3-05 스프링기반 Json Parser for Android (0) | 2015.12.29 |
R&D 2016 프로젝트3-04 스프링기반 Json Parser for Android (0) | 2015.12.26 |
R&D 2016 프로젝트3-03 스프링기반 Json Parser for Android (0) | 2015.12.20 |
댓글 영역