'(DB) MySql > 설치 및 초기DB작업' 카테고리의 다른 글
5. MySQL - TABLE 생성 (0) | 2017.01.22 |
---|---|
4. MySQL - DB 접속 (0) | 2017.01.22 |
3. MySQL - DB 생성 (0) | 2017.01.22 |
2. MySQL - Workbench 설치 (0) | 2017.01.22 |
1. MySql 설치 (0) | 2017.01.18 |
5. MySQL - TABLE 생성 (0) | 2017.01.22 |
---|---|
4. MySQL - DB 접속 (0) | 2017.01.22 |
3. MySQL - DB 생성 (0) | 2017.01.22 |
2. MySQL - Workbench 설치 (0) | 2017.01.22 |
1. MySql 설치 (0) | 2017.01.18 |
** Join 후 Update하기 **
1. 기본 예문
UPDATE 테이블명 as A_table
SET 업데이트할필드명 = (SELECT 선택필드
FROM 테이블명 as B_table
WHERE A_table.공통ID = B_table.공통ID);
2. Join후 Update구문
UPDATE [테이블A] , [테이블B] b
SET a.컬럼1 = b.컬럼1
WHERE a.컬럼2 = b.컬럼2 ;
3. Join후 Update구문
UPDATE 후원테이블 A INNER JOIN 회원테이블 B
ON A.회원아이디 = B.회원아이디
SET B.회원등급 = 7
WHERE B.회원등급 = 9 AND A.후원금 >= 10000 ;
4. mysql에서는 서브쿼리의 form절과 업데이트 target 모두를 같은 테이블로 사용할 수 없다
update tbl_a
set no = 'a'
where seq in ( select * from ( select seq from tbl_a where x = 'b' ) as t )
한번더 감싸준다.
** Rownum 구현하기**
1. sql
SELECT @rnum := @rnum + 1
FROM (SELECT @rnum := 0) rn
2. SELECT @rnum := 0 : from 절에 @rnum 이라는 변수 생성 및 초기화
@rnum := @rnum + 1 : 컬럼 절에 @rnum 을 add한다.
3. set구문을 사용하여 rownum
SET @rnum := 0;
SELECT @rnum := @rnum + 1
FROM 테이블명;
4. FROM절에서 초기화
SELECT @rnum := @rnum + 1
FROM (SELECT @rnum := 0) rn
5. WHERE절에서 초기화
SELECT @rnum := @rnum + 1
FROM 테이블명
WHERE (@rnum := 0) = 0;
mysql rank 구하기 (팀이 존재 하는 동일등수) (0) | 2017.01.16 |
---|---|
mysql rank 구하기 (동일등수) (1) | 2017.01.13 |
Group 별로 상위 n개의 레코드 얻기 (0) | 2017.01.12 |
** 문자열 결합 **
MySQL 함수중 GROUP_CONCAT과 CONCAT, CONCAT_WS 가 있다.
이 함수를 이용하면 우리가 원하는 결과를 얻을 수 있다.
CONCAT는 Field를 하나의 문자열로 묶어주는 함수이다.
다음과 같이 사용할 수 있다.
결과는 다음과 같다.
1|지도리|jidori@nnn.com 2|지돌스타|jidolstar@nnn.com 3|방실이|bangsiri@nnn.com 4|설운도|seolundo@nnn.com 5|박주영|juyoung@nnn.com 6|이효리|hyri@nnn.com
CONCAT_WS는 CONCAT과 거의 비슷하다. 하지만 구분자를 한번에 지정할 수 있다는 것이 특징이다.
결과는 CONCAT과 완전 동일하다.
이 함수를 이용하면 GROUPING된 Record를 원하는 구분자를 이용해 문자열로 통합할 수 있다.
예시는 다음과 같다.
결과는 다음과 같다.
지도리;지돌스타 방실이;설운도;이효리 박주영
단, 이것만 기억하자. group_concat_max_len 시스템 변수에 의해 최대허용길이를 설정할 수 있는데, default값이 1024이다. 만약 1024byte가 넘어가면 GROUP_CONCAT에 의해 붙은 문자열은 잘린다.
Query문 부터 보자.
결과는 다음과 같다.
1|지도리|jidori@nnn.com;2|지돌스타|jidolstar@nnn.com 3|방실이|bangsiri@nnn.com;4|설운도|seolundo@nnn.com;6|이효리|hyri@nnn.com 5|박주영|juyoung@nnn.com
이 방법을 사용하면 한번의 Query로 처음에 보여준 PHP코드 처럼 할 필요가 없다는 것을 알 수 있을 것이다.
오라클에서 하는 방법 : http://blog.naver.com/xsoft/150017833358
GROUP_CONCAT() 메뉴얼 : http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
CONCAT() 및 CONCAT_WS() 메뉴얼 : http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat
MySql - 문자열 변경. Replace (0) | 2017.01.18 |
---|---|
MySql - 문자열 찾기.Find (0) | 2017.01.18 |
** Toast 모양 변경하기 **
0. 프로젝트명 : ToastModify
1. Toast컬러 변경 및 layout을 이용한 Toast변경
2. 소스
1. MainActivity.xml : layout 조회 및 Toast보여주기
2. drawable/toast.xml : Toast모양 변경
3. layout/activity_main.xml : main activity
4. layout/activity_toast.xml : Toast모양을 변경 할 Layout. Activity. View
3. 화면 :
- Toast의 좌표
. 메소드 : Toast.setGravity(int gravity, int xOffset, int yOffset)
. gravity : Toast의 기본 위치 지정 (TOP, LEFT, CENTER..)
. xOffset, yOffset : gravity 기본 위치를 기준으로 x, y 좌표임
. 예) toast.setGravity(Gravity.TOP | Gravity.LEFT, 150, 300);
- [단순 토스트표시] 버튼 클릭 시 Toast
- [LAYOUT토스트 표시]버튼 클릭 시 Toast
. activity_toast.xml layout을 이용해서 생성
. drawable/toast.xml 파일에 shape, strok, solid, padding, corner, gradient tag등을 통해서 Toast 모양 변경
|
1. MainActivity.xml |
|
package com.example.farmer.toastmodify; |
|
2. drawable/toast.xml |
|
<?xml version="1.0" encoding="utf-8"?> |
|
3. layout/activity_main.xml |
|
<?xml version="1.0" encoding="utf-8"?> |
|
4. layout/activity_toast.xml |
|
<?xml version="1.0" encoding="utf-8"?> |
4. slf4j - 예제 (0) | 2018.10.31 |
---|---|
1. Log4j 구성 방법 (0) | 2017.01.25 |
2. log4j 기본 설명 (0) | 2017.01.12 |
프로그램작성시 로그를 남기는 목적으로 만든 프레임워크.
기본은 log4j.jar파일이 있고
확장파일로는 jdbcappender.jar와 ojdbc14.zip파일등이 있다.
log4j configuration 파일 설정하기
root looger설정
log4j.rootLogger=INFO(로그레벨), console, filelog, dblog(형식)
로그레벨을 설정하고 뒤에 root appender를 설정한다. console(화면출력), filelog,dblog
log level은 debug,info,warn,error,fatal로 구성되고 debug제외 모든 로그가 기록된다.
① FATAL : 가장 크리티컬한 에러가 일어 났을 때 사용합니다. 하위
② ERROR : 일반 에러가 일어 났을 때 사용합니다.
③ WARN : 에러는 아니지만 주의할 필요가 있을 때 사용합니다. 1,2,3
④ INFO : 일반 정보를 나타낼 때 사용합니다. 1,2,3,4나타냄
⑤ DEBUG : 일반 정보를 상세히 나타낼 때 사용합니다. 최상위 모두1,2,3,4,5를 모두 나타낸다
그렇지만 예외적으로 선택적 패키지별로 로그를 사용할수 있다. 이것은
# package logging setting
log4j.logger.com.test(패키지명)=FATAL,logfile 이렇게 해주면 된다.
layout타입 : patternlayout
%p : debug,info 로그타입
%d : 로그발생시간 (%d{yyyy-MM-dd HH:mm:ss})
%t :로그 쓰레드 이름
%F: 로그 발생 프로그램 파일명(%F{파일명}
%M : 로그 발생메소드명
%r : 프로그램 시작후 로그 발생까지 시간
%m : 로그로 전달된 메세지
%n: 개행
%L 호출 코드 라인
참조한거다 다른 분이 올린거..
[%c] [%C] [%d] [%F] [%l] [%L] [%m] [%M] [%n] [%p] [%r] [%t] [%x] [%X]는 다음과 같다
admin.jsp] [org.apache.jsp.admin_jsp] [2011-02-10 11:30:22,21] ADMIN_jsp.java] [org.apache.jsp.test_jsp._jspService(test_jsp.java:64)] [64][fatal!!] [_jspService] [개행] [FATAL] [765567] [http-8080-Processor25] [] []
실제적용
먼저 web.xml에 적용
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/properties/log4j.properties</param-value>
</context-param>
속성저장log4j.properties파일
## 세팅 stdout,rolling 두개의 appender add
log4j.rootLogger=DEBUG,stdout,fout 디폴트 로그 남기기
## 콘솔에 출력하기위한 stdout생성
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
## Pattern
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# 호출자의 이름과 라인번호기록
log4j.appender.stdout.layout.ConversionPattern=[%d] %c (%F %L) -%m -%n
# roll 파일이름 설정
## 파일에 출력하기위한 fout생성
log4j.appender.fout=org.apache.log4j.DailyRollingFileAppender
## 이클립스의 경우에는 이클립스 자체경로C:\myjava\eclipse가 root가 되어버렸다.
log4j.appender.fout.File=logs/log4j.log\t
log4j.appender.fout.ImmediateFlush=true
log4j.appender.fout.Append=true\t
log4j.appender.fout.DatePattern='.'yyyy-MM-dd-HH(매시간마다)-mm(매분마다)
log4j.appender.fout.layout=org.apache.log4j.PatternLayout
log4j.appender.fout.layout.ConversionPattern=[%d] %c (%F %L) -%m -%n
실행방법
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.Logger;
Logger log=Logger.getLogger(this.getClass());
log.debug("자료설정"); info fatal등 속성에 따라 나온다.
이런식으로 넣어주면 알아서 로그파일이나 db에 생성해준다.
참조 : http://blog.naver.com/kimura777/110107337809
4. slf4j - 예제 (0) | 2018.10.31 |
---|---|
1. Log4j 구성 방법 (0) | 2017.01.25 |
3. log4j.xml 파일 예제 (0) | 2017.01.12 |
** ImageView속성중 scaleType 에따른 표시 효과 **
|
1. ImageView 설정 예제 |
|
<ImageView |
2. 8 가지 Type - 주의 할점은 이 속성은 android:src로 이미지를 불러왔을 때 적용되며 android:background로 불러오면 이 속성은 적용 되지 않는다. | ||
속성값 |
java |
설명 |
matrix |
setScaleType(ImageView.ScaleType.MATRIX) |
원본 크기 그대로 보여줌 (왼쪽 상단 정렬) |
Center |
setScaleType(ImageView.ScaleType.CENTER) |
원본 크기 그대로 보여줌 (가운데정렬) |
centerCrop |
setScaleType(ImageView.ScaleType.CENTER_CROP) |
View 영역에 공백이 있으면 채워서 보여줌(비율유지) (ImageView 영역은 match_parent(fill_parent)이다) ImageView 영역에 공백이 있을 경우 비율을 유지하며 이미지를 늘린다. |
centerInside |
setScaleType(ImageView.ScaleType.CENTER_INSIDE) |
View 영역을 벗어나면 맞춰서 보여줌(비율유지) centerCrop과는 반대로 ImageView 영역을 벗어나면 비율을 유지하며 줄어든다. |
fitStart |
setScaleType(ImageView.ScaleType.FIT_START) |
View 영역에 맞게 보여줌 (왼쪽상단 정렬, 비율유지) fitStart는 centerInside와 같으며 정렬은 왼쪽 위라는 것이 다르다. |
fitCenter |
setScaleType(ImageView.ScaleType.FIT_CENTER) |
View 영역에 맞게 보여줌 (가운데정렬, 비율유지) fitCenter는 centerInside와 같은 기능을 한다. |
fitEnd |
setScaleType(ImageView.ScaleType.FIT_END) |
View 영역에 맞게 보여줌 (왼쪽하단 정렬, 비율유지) fitEnd는 centerInside와 같으며 정렬은 왼쪽 아래인 것이 다르다. |
fitXY |
setScaleType(ImageView.ScaleType.FIT_XY) |
View 영역을 가득 채워서 보여줌(비율유지 안함) fitXY는 비율에 상관없이 ImageView영역을 가득 채운다. |
** Dynamic Layout Create **
1. 프로젝트명 : ToggleCustom
2. 정의 : activity_main.xml을 사용하지 않고 java단에서 Layout을 생성하기
3. 화면 :
4. 안드로이드 버전
- 스튜디오 : v2.2.3
- Minumum SDK : API 19:Android 4.4. (KitKat)
5. 소스목록
1. MainActivity.java
6. 소스
|
1. MainActivity.java |
|
package com.example.farmer.layoutjavacreate; |
** ToggleButton(버튼2개로) **
1. 프로젝트명 : ToggleCustom
2. 버튼 2개를 이용해서 ToggleButton만들기
3. 화면 :
4. 안드로이드 버전
- 스튜디오 : v2.2.3
- Minumum SDK : API 19:Android 4.4. (KitKat)
5. 소스목록
1. MainActivity.java
2. activity_main.java
3. drawable/selector_btn_left.xml : 왼쪽 버튼 선택 시
4. drawable/selector_btn_right.xml : 오른쪽 버튼 선택 시
5. drawable/selector_buttons_text.xml : 선택된 버튼
6. drawable/shape_btn_unselected_left.xml : 왼쪽 버튼 미 선택 시
7. drawable/shape_btn_unselected_right.xml : 오른쪽버튼 미 선택 시
8. values/colors.xml : color
6. 소스
|
1. MainActivity.java |
|
package com.example.farmer.togglecustom; |
|
2. activity_main.java |
|
<?xml version="1.0" encoding="utf-8"?> |
|
3. drawable/selector_btn_left.xml |
|
<?xml version="1.0" encoding="utf-8"?> |
|
4. drawable/selector_btn_right.xml |
|
<?xml version="1.0" encoding="utf-8"?> |
|
5. drawable/selector_buttons_text.xml |
|
<?xml version="1.0" encoding="utf-8"?> |
|
6. drawable/shape_btn_unselected_left.xml |
|
<?xml version="1.0" encoding="utf-8"?> |
|
7. drawable/shape_btn_unselected_right.xml |
|
<?xml version="1.0" encoding="utf-8"?> |
|
8. values/colors.xml |
|
<?xml version="1.0" encoding="utf-8"?> |