안드로이드2018. 5. 1. 00:46

안드로이드 스튜디오로 Bitbucket에 리파지토리를 생성하고 데이터를 올리려는데 갑자기 푸시가 거부된다.


Push rejected: Push to origin/master was rejected.


한참을 헤매다가 ...

리파지토리를 생성할 때 무심코 만들었던 Readme.md 파일 때문이라는 것을 알게 되었다.


바보냐.....

Posted by 홍규홍규
안드로이드2018. 4. 29. 18:32

이클립스로 안드로이드 개발은 거의 없어지는 추세지만..

아직 간간이 하는 분들도 계시더라.



간단하게 원하는 색상으로 변경 가능.


Posted by 홍규홍규
MySQL2018. 4. 24. 00:37

MySQL에서도 if나 case 같은 조건문을 사용할 수 있는데 XML에서의 if문 사용한 것을 복습해본다.

기본적인 테이블 데이터 선택 방법은 아래와 같이 간단하다.

<select id="list" parameterType="Member" resultMap="MemberMap" >
  SELECT * FROM MEMBER
</select>

여기에서 조건을 추가해본다. 

만약에 타입이라는 조건이 있고 이 조건을 넣었을 때, 안 넣었을 때의 데이터를 뽑아야 한다고 가정하면 아래와 같다.

<select id="list" parameterType="Member" resultMap="MemberMap" >
  SELECT * FROM MEMBER
  <choose>
    <when test="type.equals('')">
      WHERE type LIKE "%"
    </when>
    <otherwise>
      WHERE type=#{type}
    </otherwise>
  </choose>
</select>

조건을 넣지 않았을 때는 모든 데이터를 가져오는 WHERE 절을 넣으면 된다.

보통 조건을 넣지 않을 때는 검색을 안 하면 되는데 나의 경우 조건이 4가지였다.


조건1, 조건2, 조건3, 조건4


그래서 기준이 되는 조건을 type으로 정해두기 위해서 저렇게 짠 거다. 

이게 내가 생각해낸 한계치...


이제 조건2, 3, 4에 대한 중복 조건인데 다음과 같이 짜면 된다. 

어차피 몇 개가 되든 if문이 똑같이 들어가기 때문에 상관없다.

<select id="list" parameterType="Member" resultMap="MemberMap" >
  SELECT * FROM MEMBER
  <choose>
    <when test="type.equals('')">
      WHERE type LIKE "%"
    </when>
    <otherwise>
      WHERE type=#{type}
    </otherwise>
  </choose>
  <if test="!createDate.equals('')">
    AND cre_dt=#{createDate}
  </if>
  <if test="!createDate.equals('')">
    <!-- 조건 3.. -->
  </if>
  <if test="!createDate.equals('')">
    <!-- 조건 4.. -->
  </if>
</select>

이렇게 하면 4가지 조건에 대한 16가지 경우의 데이터를 쿼리문 하나로 추출할 수 있다.

처음엔 무식하게 16가지 경우의 수에 대한 쿼리문을 다 작성하려고 했었는데

MySQL 같은 걸 만든 사람이 이런 기능을 안 만들었을리가 없다고 생각해서 공부했다.


까먹지 말자 ..

'MySQL' 카테고리의 다른 글

MySQL + MyBatis INSERT 성공 후 Primary Key 값 받아오기  (0) 2017.12.13
Posted by 홍규홍규