728x90

구글님 왈, ProgressDialog는 API Level 26부터 더 이상 쓰지 말라 그런다.

그렇다면 어떻게 대체를 해야하나?

Custom으로 비슷한 기능을 하는 애들을 만들어야하는데...

 

먼저 Dialog, AlertDialog, DialogFragment 등을 비교

 

1. Dialog 

- xml로 대화상자 화면을 구성. 즉 xml을 띄워주는형식이기 떄문에 onCreateView 메소드를 사용.

 

2. AlertDialog 
- 빌더 코드 형식. 따라서 xml 파일은 필요없고 자바 클래스 하나만 있으면됨.

- AlertDialog는 Dialog 그 자체이기 떄문에 Dialog onCreateDialog 메소드를 가져옴.

 

3. DialogFragment

- AlertDialog를 관리하는 Fragment를 만들어 사용할 수 있도록 제공되는 Fragment. AlertDialog와 큰 차이는 없음.

- 해당 기능 사용지 마시멜로 버전 에러가 있는데, 아래 블로그에서 상세히 잘 다루심 

  https://oneday0012.tistory.com/142

 

 

우선은 Dialog로 커스텀하는 방식을 고려중

상세 화면을 만들 때는 아래 링크 참조.

https://qastack.kr/programming/45373007/progressdialog-is-deprecated-what-is-the-alternate-one-to-use

 

 

 

 

Reference

http://egloos.zum.com/monibu/v/4156664

https://hyunndyblog.tistory.com/109

https://oneday0012.tistory.com/142

https://qastack.kr/programming/45373007/progressdialog-is-deprecated-what-is-the-alternate-one-to-use

728x90
728x90


출처: https://2dubbing.tistory.com/51 [비실이의 개발공간]

 

여러개의 row(record) 일괄 update 쿼리문

예시 테이블 명: TEST idx name age  1 GIM 25  2 LEE 27  3 PARK 30 위 테이블에서 idx가 1인 row의 컬럼 name 값을 KIM으로, idx가 3인 row의 컬럼 age 값을 29 로 변경 이 경우 아래와 같이 쿼리를 구성..

2dubbing.tistory.com

 

예시

 

테이블 명: TEST 

 

idx 

name 

age 

 1

GIM 

25 

 2

LEE 

27 

 3

PARK

30 

 

위 테이블에서 idx가 1인 row의 컬럼 name 값을 KIM으로, 

 

 

 

idx가 3인 row의 컬럼 age 값을 29 로 변경

 

 

 

이 경우 아래와 같이 쿼리를 구성하여 처리한다.

 

UPDATE  TEST
SET
  name = CASE idx WHEN 1 THEN 'KIM' ELSE name END,
  age = CASE idx WHEN 3 THEN 29 ELSE age END

WHERE  idx IN (1, 3);

 

4번째 라인을 보면 ELSE 구문이 있는데  이 쿼리를 해석해보면 아래와 같다.

 

 

`idx가 1인 row의 컬럼 name의 값을 'KIM' 으로 변경하고, idx가 1이 아닌 row의 컬럼 name은 이전 값을 유지`

 

 

만약 위 쿼리에서 ELSE 구문을 모두 지운 뒤에 쿼리를 수행하면 아래와 같이 바뀌게된다.

 

 

idx 

name 

age 

 1

KIM 

NULL 

 2

NULL 

NULL 

 3

NULL

29

 

728x90

'Dev > DB' 카테고리의 다른 글

Oracle - OVER() 함수 설명  (0) 2020.08.26
[MySQL] Linux 언어설정 변경 (LATIN 1 -> EUCKR)  (0) 2020.07.20
[MySQL] batch작업  (0) 2020.07.02
[MySQL/Oracle] Merge Into 관련 (ON DUPLICATE KEY)  (0) 2020.06.30
[MyBatis] Like 처리 방법  (0) 2020.06.30
728x90

 

I found a solution (thanks to user1506104) to changing the toolbar's title, which did not use getSupportActionBar().setTitle().

CollapsingToolbarLayout toolbarLayout = findViewById(R.id.toolbar_layout); 
Toolbar toolbar = findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 

mViewModel.getValue().observe(this, mValue -> { 
	toolbarLayout.setTitle(mValue); });

Where R.id.toolbar_layout is the CollapsingToolbarLayout that parents R.id.toolbar in the activity's respective layout resource.

I do not know why it works unfortunately.

 

Reference

 

https://stackoverflow.com/questions/60467526/how-to-execute-settitle-for-an-actionbar-in-an-activitys-observe-call-for-a-v

 

 

How to execute setTitle() for an ActionBar in an activity's observe call for a ViewModel's LiveData object?

In an activity file, when I write getSupportActionBar().setTitle(...) in an instantiated observer interface for a view model's LiveData value, the action bar's title doesn't change on the observabl...

stackoverflow.com

 

 

728x90
728x90

Batch

배치(batch)란 일괄적으로 작업을 처리한다는 의미다. 예제에서 토픽 저장을 할 때마다 해당 작업을 처리하는 것이 아니라 이메일을 발송해야 한다는 사실만 일단 기록해두고, 실제 이메일 전송 작업은 백그라운드로 일괄적 처리할 것이다. 

 

 

---------------------------------------------------------------------------------------------------

 

 

1. MySQL SQL 배치 작업 (in Window)

출처: https://skshpapa80.tistory.com/27

 

리눅스에서는 cron 이라는 좋은툴이 있으니 넘어가고 윈도우에서 MySQL 배치 작업을 하는 방법을 소개합니다.

MySQL윈도우 버전을 설치하면 MySQL Command Line Tool이 같이 설치됩니다.

이툴을 사용하여 배치작업을 할예정인데요.

배치작업을 위해 두개의 파일이 필요합니다.

bat확장자를 가진 배치파일과 실행될 SQL 이저장된 파일

1. 우선 bat 파일을 하나 만듭니다.

텍스트 에디터에서 신규 파일을 생성한 후

ex) MYSQL_BATCH.bat 이런식으로 파일을 생성합니다.

그리고 다음과 같이 코딩합니다.

C:\PROGRA~1\MySQL\MYSQLS~1.1\bin\mysql.exe -u아이디 -p패스워드 < runsql.sql

(MySQL 설치위치는 설치환경에 따라 다를수 있습니다!)

bat 파일을 저장합니다.

2.두개의 파일은 같은 폴더에 있어야 합니다.

SQL 파일을 하나 만듭니다. ex) runsql.sql

신규로 텍스트파일을 하나 생성한 후

runsql.sql 파일로 저장하고

실행할 내용의 SQL 들을 정리해서 입력합니다.

여러줄을 입력할경우 SQL 문 마지막에 ; 를 입력합니다.

3.미리 작성한 sql문을 테스트 하고

runsql.sql 파일을 저장합니다.

4.MYSQL_BATCH.bat 실행

MYSQL_BATCH.bat 파일을 더블 클릭하여 정상적으로 실행되는지 테스트 합니다.

아이디와 비밀번호, 경로를 잘 확인해야 합니다.

5.마지막으로 윈도우 제어판에가서 예약을 설정합니다.

이때 처음작성한 bat 파일을 원하는시간에 동작하도록 설정하면

사용자가 원하는 시간에 실행되는

MySQL 배치작업이 완성됩니다.

이방법을 사용해서 MySQL 배치작업 스크립트를 많이 돌려 봤는데 잘 운영됩니다. ^^

 

 

2. Linux - cron 사용

Cron

크론은 유닉스 계열 (리눅스 포함)에 기본적으로 포함된 스케줄러다. 스케줄러라는 것은 정해진 시간에 어떤 작업을 수행하도록 하는 소프트웨어를 말한다. 특정 시간에 어떤 스크립트가 실행되도록 크론에 정의해두면 그 시간에 그 스크립트를 실행해준다. 이에 대한 자세한 설명은 리눅스 수업 크론편을 참고하자.

CLI 수업에서 만든 예제는 바로 크론을 이용하기 위한 것이다. 큐에 쌓여있는 작업을 하나씩 수행하도록 할 때 크론을 이용할 것이다. 이렇게 해야 할일을 순차적으로 쌓아놨다가 일괄적으로 처리하는 것을 배치(batch) 작업이라고 부른다. 

 

 

 

https://opentutorials.org/course/697/4130

blog.naver.com/todangs/220779628651

https://dalgoo.tistory.com/17

728x90

+ Recent posts