본문 바로가기
반응형

분류 전체보기371

오라클 계층형 쿼리 ●계층형 쿼리 - 계층 관계가 있는 칼럼(외래키로 자기자신 테이블을 참조)이 있는 경우 계층 구조를 이용하여 데이터를 추출- 형식select 칼럼from 테이블start with 조건connect by [prior] [nocycle] ex)select empno, ename, mgr, connect_by_root ename, sys_connect_by_path(ename, '/')from empstart with mgr is nullconnect by prior empno = mgr; arex)select level,lpad(' ',(level-1)*2,' ')||ename, sal,deptnofrom empstart with ename = 'KING'connect by prior empno = mgr; 2015. 9. 2.
오라클 테이블 복사하기 ●테이블 복사하기 - create table 테이블명 as select 컬럼명 from 테이블명; ●데이터를 포함하지 않고 구조만 복사- create table 테이블명 as select 컬럼명 from 테이블명 where 1=0; 2015. 9. 2.
오라클 union, minus ●union- 연결된 select문의 결과 합을 보여준다. 중복된 것은 하나만 보유준다. ●union all- union과 같이만 중복된 것이 있어도 모두 보여준다. ●minus- 연결된 select문의 결과 차를 보여준다. ●ex-select * from test; -select * from test2; -select * from testunionselect * from test2; -select * from testunion allselect * from test2; -select * from testminusselect * from test2; 2015. 9. 2.
오라클 각종 함수들2 ●TO_CHAR- 숫자나 날짜형 자료를 문자로 변환한다.ex)select to_char(8000000,'999,999,999'), to_char(sysdate,'yyyy/mm/dd'),to_char(sysdate,'yyyymmdd') from dual; ●NVL(a,b)- a 데이터가 null일 경우 b로 변환해서 출력한다.ex)select comm, nvl(comm,'0') from emp; ●DECODE(a, b, c,d)- 조건함수이다. a데이터가 b와 같으면 c를 출력, 아니면 d를 출력한다.ex)select comm, decode(comm, 300, '300입니다', '300이 아닙니다') from emp; ●CASE~WHEN- decode함수와 비슷하지만 좀더 직관적인 함수이다.ex)selec.. 2015. 9. 2.
오라클 각종 함수들1 ●length- 인수의 길이를 반환한다.ex)select length('1234') from dual; ●lower- 인수를 소문자로 변환한다.ex)select lower('ABCD') from dual; ●upper- 인수를 대문자로 변환한다.ex)select upper('abcd') from dual; ●lpad - 인수의 왼쪽을 입력한 자리수가 되도록 입력한 문자로 채운다.ex)select lpad('111',5,0) from dual; ●trim- 인수의 좌우 공백을 제거한다.ex)select trim(' ABC ') from dual; ●substr- 인수의 문자열을 잘라낸다ex)select substr('ABC',0,2) from dual; ●avg- 칼럼의 평균을 구한다.ex)select a.. 2015. 8. 28.
오라클 칼럼 별명(alias), 합성연산자(||) ●컬럼별명(alias)- 컬럼 이름을 쓰고 공백 다음에 별명을 지어주거나 as를 사용하거나 큰따옴표를 사용하여 별명을 지어준다.ex)select job, job jj, job as jj2, job "jj3" from emp; ●합성연산자(||)- 하나의 칼럼과 문자열 또는 다른 칼럼을 연결시킨다.ex)select empno||'-'||ename||'-'||job from emp; 2015. 8. 28.
오라클 select, distinct, group by having, order by ●select 칼럼명 from 테이블명;- 칼럼명부문에 웬만하면 * 를 사용하지 말고 칼럼명을 적어주는게 좋다(서버 부하를 줄이기 위해)ex)select deptno from emp; ●distinct- 컬럼에서 중복을 제거하고 같은 값이면 하나만 출력한다.ex)select distinct(deptno) from emp; ●group by- 특정 칼럼을 기준으로 한 그룹으로 묶어서 합계, 평균, count 등에서 사용한다.ex)select deptno, avg(sal), sum(sal) from empgroup by deptno; ●having- group by 기준 칼럼,그룹핑 함수에 조건을 건다.ex)select deptno, avg(sal), sum(sal) from empgroup by deptn.. 2015. 8. 28.
오라클 현재 접속한 데이터베이스 이름, sid확인, 버전확인 ●select name from v$database- 데이터베이스명 확인 ●select instance from v$thread- sid 확인 ●select * from v$version- 현재 데이터베이스 버전 확인 2015. 8. 26.
오라클 sqlplus 기본 명령어(접속, 테이블리스트, 테이블정보,sql파일 실행) ●conn uid/pwd- 해당 uid의 데이터베이스에 접속한다. ●select * from tab- 현재 접속한 계정의 테이블 리스트를 출력한다. ●desc 테이블명- 해당 테이블의 칼럼리스트와 칼럼에 대한 구조를 나타낸다. ●start sql파일명 or @sql파일명- 파일명.sql 파일에 있는 sql문을 실행한다. cmd창에서 해당 파일이 있는 경로로 이동한 후 sqlplus실행한 다음 위 명령어를 실행하면 된다. 2015. 8. 26.
오라클 데이터베이스 시작, 종료 ●오라클 종료- shutdownn immediate - 가장 자주 사용되는 방법으로 실행중인 sql문장을 중지하고, 실행중인 트랜잭션이 있으면 rollback, 사용자의 새로운 로그인을 막고 db에 변경된 사항을 데이터파일에 기록한다. 사용자들이 로그아웃할때까지 기다리지 않고 db를 종료한다. ●오라클 시작- startup nomount -> startup mount -> startup open 2015. 8. 26.
오라클 sqlplus 접속, 계정생성, 계정삭제, 패스워드 수정 ●계정 생성 - cmd창에서 'sqlplus "/as sysdba"'를 입력해서 오라클에 접속한다 - 'create user 유저명 identified by 패스워드' 명령어로 계정을 생성한다. ●권한부여 - 'grant connect, dba, resource to 유저명' 명령어로 계정에 권한을 준다. ●계정 패스워드 변경 - 'alter user 유저명 identified by 패스워드' 명령어로 계정의 패스워드를 변경한다. ●계정 삭제 - 'drop user 유저명 cascade' 명령어로 계정을 삭제한다. 2015. 8. 25.
오라클 서버 설치 ●오라클 사이트(http://www.oracle.com/)에서 오라클 데이터베이스 설치파일을 다운받는다 ●파일 압축을 푼 뒤 두번째 파일의 database/stage/Components에 있는 파일들을 복사해서 첫번째 파일의 database/stage/Components경로에 복사한다. ●setup.exe로 설치한다. ●db를 설치할 경로를 선택하고 비밀번호를 입력한다. ●완료후 cmd에서 sqlplus를 실행했을때 실행되면 설치가 완료된것이다. ●sql developer 실행-sql developer를 실행하면 java설치경로를 지정하는 창이 뜬다. java설치경로에서 java.exe를 선택한다 ㅣ 2015. 8. 20.
웹 호스팅 장시간 접속 안할때 mysql 500에러 ●장시간 접속하지 않고 다시 접속하면 500에러가 나오고 새로고침 한번 하면 다시 제대로 나오는 오류->mysql서버에 일정시간 접속하지 않으면 mysql서버 연결이 끊긴다. 그래서 일정시간 마다 한번씩 mysql에 접속을 해주는 속성을 넣어줘야 한다. spring+ibatis의 경우 root-context.xml에 validationQuery를 넣는다. ex) 2015. 6. 17.
안드로이드 GCM ●GCM(Google Cloud Messaging)- 구글에서 제공하는 푸시 메시지 서비스이다. ●gcm 서비스 신청 - 구글 콘솔 사이트에 접속한 후 프로젝트를 생성한다.https://console.developers.google.com/project - API 및 인증에서 API를 클릭 한 후 Clou Messaging for Android에 들어가서 사용설정을 On으로 한다. - 사용자 인증정보에 들어가서 '공개API 엑세스'에서 새 키(서버키)를 만든다. - 서버의 IP를 입력한다. 아무것도 입력하지 않으면 모든IP허용이 된다. ● 아래 사이트에서 예제 소스를 다운받아 적용하기https://github.com/google/gcm - https://github.com/google/gcm에서 다운받은.. 2015. 5. 10.
안드로이드 SharedPreferences ●SharedPreferences- 데이터를 간단하게 저장할 수 있는 안드로이드에서 제공하는 클래스이다. ●예제- MainActivity.javapackage com.example.example; import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast; public c.. 2015. 5. 10.
안드로이드 자바 소켓서버 통신 ●소켓- 일상 용어에서는 전구를 끼울 수 있는 도구를 말한다. 자바언어에서는 네트워크를 제어하는 클래스를 의미한다.자바에서는 개발자가 네트워크 전문지식이 없어도 프로그래밍적으로 제어가 가능하도록 추상화시켜 제공해준다. ●예제 서버- ChatServer.javapackage chat; import java.io.IOException;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import java.util.Vector; public class ChatServer {//서버소켓 - 클라이언트의 접속을 받아들이는 클래스int port=7777;ServerSocket server;Vector connectList;.. 2015. 5. 10.
안드로이드 어싱크태스크(AsyncTask),로딩중 표시(ProgressDialog), 웹서버 연결 통신(HttpURLConnection) ●어싱크태스트(Async Task) - 네트워크 연결이므로, 연결시에 지연이 발생할 수 있다. 따라서 메인쓰레드(UI쓰레드)로 네트워크 접속을 시도하면 앱은 접속이 성공되고 응답을 받을때까지 동작을 못하게 된다. 따라서 안드로이드 최근버전부터는 메인쓰레드가 네트워크 접속을 시도하는것 자체를 금지한다. - 웹서버로부터 데이터를 가져와서 ListView 등에 출력하려면 동생쓰레드에서 가져온 데이터를 UI에 반영하는 작업이 필요한데, 안드로이드에서는 개발자가 정의한 쓰레드는 UI를 제어할 수 없도록 금지시켜놓았다. 그래서 Handler를 사용해야 하는데 이 작업은 번거롭다.그래서 AsyncTask라는 백그라운드 작업용 클래스를 지원하게 되었다. - AsyncTask = Thread + Handler ●로딩중 .. 2015. 5. 1.
자바스크립트 JSON ●자바스크립트 JSON(JavaScript Object Notation)- JSON은 원래 자바스크립트 데이터 객체이다. - JSON이란 데이터를 표현함에 있어 xml보다 더욱 단순하고 객체 표현방식이 기존의 개발자들에 익숙한 {객체표기법}을 따르므로 데이터 처리가 쉽다. ●예제- text.jsp 2015. 4. 26.
java JSON 라이브러리 ●자바JSON- 자바에서 JSON을 만들고 파싱을 해주는 기본 클래스가 없기때문에 라이브러리를 추가해줘야 한다. - 자바 JSON라이브러리는 여러가지가 있다. 아래 예제는 org.json 라이브러리를 사용했다.http://mvnrepository.com/artifact/org.json/json ●예제- text.jsp 2015. 4. 26.
안드로이드 JSONObject, JSONArray ●안드로이드 JSON - 안드로이드에서는 별도로 라이브러리를 추가할 필요없이 JSONObject, JSONArray 클래스를 사용하면 된다. ●예제- MainActivity.javapackage com.example.exam; import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject; import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.Toast; public class MainActivity extends Activity { @Overr.. 2015. 4. 26.
안드로이드 ViewPager, SQLite 예제 소스 ●ViewPager와 SQLite를 이용한 예제 - MainActivity.javapackage com.example.example1; import java.util.ArrayList; import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.support.v7.app.ActionBarActivity; public class MainActivity extends Action.. 2015. 4. 25.
안드로이드 오픈소스 ViewPagerIndicator ●뷰페이저인디케이터(ViewPagerIndicator)- 뷰페이저 화면이 이동할대 탭으로 해당 페이지가 어디에 위치해 있는지 알려준다.예)카카오톡 상단 탭 효과 - 아래 페이지에서 라이브러리를 다운 받은후 이클립스에 import해준다.http://viewpagerindicator.com/ - library프로젝트 우클릭후 properties에 들어가서 좌측android탭에서 is Library에 체크해준다. ●뷰페이저인디케이터 sample앱 추가- 먼저 다운받은 라이브러리 압축을 푼후 library폴더를 이클립스에 import해준다. (이 라이브러리를 사용할 프로젝트와 같은 workspace에 추가해야한다.) - library프로젝트 우클릭후 properties에 들어가서 좌측android탭에서 is L.. 2015. 4. 15.
안드로이드 SQLite ●sqlite- 안드로이드 로컬에서 사용하는 database이다. - 실제 스마트폰 단말기 내의 data/data/database경로에 파일이 만들어지게된다.에뮬레이터를 실행하고 DDMS에 들어가면 파일 구조를 볼수 있다.(실제 핸드폰으로 연결하면 파일구조를 다 보지 못하도록 막혀있다.) - 안드로이드 스마트폰은 보안상 접근을 허용하지 않는다. 따라서 개발자가 만일 sqlite 파일등을 스마트폰에 넣으려 할때, gui모드로 지원되는 DDMS는 사용할 수 없다.DDMS는 에뮬레이터에서만 의미가 있다. 안드로이드의 sqlite 관련 패키지에는 개발자가 데이터베이스 관리할 수 있는 여러 객체들을 지원해주므로, 실제 개발시엔 GUI모드로 하지말고 프로그래밍으로 처리한다. ●예제 - DatabaseMain.jav.. 2015. 4. 8.
안드로이드 뷰페이저(ViewPager) ●뷰페이저(ViewPager)- 화면을 좌우로 드래그해서 화면을 전환하는 기법이다. - import android.support.v4.app.~~ 를 선언해야한다. ●예제- 버튼을 클릭하거나 좌우로 드래그하면 화면이 전환되고 2초마다 화면이 자동으로 전환되는 예제 - MainActivity.javapackage com.example.day0404; import android.os.Bundle;import android.os.Handler;import android.support.v4.view.ViewPager;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.view.View.OnClickListe.. 2015. 4. 7.
안드로이드 액션바 (ActionBar) ●액션바(Actionbat)- 앱 상단에 나오는 네이게이션 모드를 제공해 주는 바이다. 유저의 위치를 확인시켜주고 메뉴등을 제공해 줘서 유저가 앱을 더 편리하게 사용하도록 한다. - 안드로이드 버전 11부터는 Activity에 이미 액션바가 지원된다. 개발자가 매니페스트에 설정하지 않으면 나오지 않는것 뿐이었다. 이전 버전 개발시 반드시 ActionBarActivity클래스를 상속 받아야 한다. - 액션바를 사용하려면 매니페스트에 테마(android:theme="@android:style/~~~)를 추가하면 된다. ●예제1 - ActionBarMain.javapackage study.bar; import com.example.day0328.R; import android.app.Activity;impor.. 2015. 4. 1.
안드로이드 프래그먼트(Fragment) ●프래그먼트(Fragment) - 스마트폰 화면이 커지고, 태블릿 피시의 등작으로 한 화면안에 여러 액티비티를 처리해야할 필요가 생겨났다. 그래서 하나의 액티비티안에 각각 여러개의 독립적으로 분할된 화면을 처리하기 위해 안드로이드 API 11(허니콤)부터 Fragment가 등장했다. - Fragment를 상속받은 클래스를 만들고 FragmentManager, FragmentTransaction를 이용해서 화면 처리를 한다. ●예제- 버튼A, B, C를 누르면 화면 변경되는 예제(지금은 잘 안쓰는 방법) - FragmentTest.javapackage study.fragment; import android.app.Activity;import android.app.FragmentManager;import a.. 2015. 4. 1.
안드로이드 애니메이션2 ●예제- 쓰레드를 이용하여 사용자가 직접 애니매이션 효과를 만들어 본다. 아래 예제는 화면을 터치하면 이미지가 움직이는 예제이다. - AniActivity.javapackage study.thread; import com.example.day0328.R; import android.app.Activity;import android.os.Bundle; public class AniActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.ani_layout);}} - MyView.javapackage stu.. 2015. 3. 30.
안드로이드 핸들러(Handler) ●핸들러(Handler) - 안드로이드는 자바표준의 쓰레드를 그대로 사용한다. 단, 주의할건 쓰레드의 대상이 UI제어일 경우 직접 제어할 수 없고 반드시 Handler나, AsyncTask를 이용해야 한다. - 안드로이드에서는 메인쓰레드만 UI를 제어할 수 있고, 이벤트를 제어할 수 있다. 따라서 개발자가 정의한 쓰레드를 이용한 UI 제어를 허용하지 않는다. 그래서 개발자 정의 쓰레드는 핸들러를 이용하여 간접적인 요청을 시도하여 그래픽을 처리할 수 있다. ●예제 - CountActivity.javapackage study.thread; import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.v.. 2015. 3. 30.
안드로이드 쓰레드 (Thread) ●쓰레드(Thread)- OS가 여러 프로세스를 동시에 처리하듯, 자바의 JVM도 세부 실행부를 생성하여 독립적으로 실행할 수 있는데, 이러한 독립적 세부 실행단위를 '쓰레드'라고 부른다. - 특정 클래스를 쓰레드 클래스로 정의할 경우, 메인 실행부와는 별도로 독립적인 수행단위가 될 수 있다. - 개발자가 독립적으로 수행할 코드를 run메서드에 작성해야 한다. - run메서드는 개발자가 직접 호출해서는 안된다. 실행여부는 시스템인 JVM이 결정해야 한다. 만일 개발자가 run메서드를 호출하면 메인쓰레드가 실행되므로 그냥 일반 메서드 취급된다. 그래서 start()로 호출해야한다. - 쓰레드는 run메서드가 끝날때 죽는다. 만약 run()안에 무한루프를 넣으면 run()메서드가 끝나지 않아서 쓰레드가 죽지.. 2015. 3. 26.
안드로이드 애니매이션1 (Animation) ●애니매이션(Animation) - 안드로이드 자체적으로 간단한 에니메이션 효과가 지원된다. - 안드로이드에서는 트윈 에니메이션을 지원한다. 일반적인 프레임에니메이션과는 차이가 있다. * 프레임 에니메이션 - 여러장의 이미지를 짧은 시간에 보여줘서 움직이는 것처럼 보여줌 * 트윈 에니메이션- 시작부터 마지막 사이의 에니메이션 효과를 내부적으로 예측 연산하여 보여줌 - 안드로이드에서 제공하는 시스템 애니매이션은 호출만 하면 된다. 대신 종류가 적다. 그래서 개발자가 직접 애니매이션을 제작해야 할 경우 쓰레드(Thread)를 이용해서 제작한다. - res/anim 안에 애니매이션 효과에 관한 xml파일을 만든 후 이 xml을 위젯에 적용한다. ●트윈 에니메이션 예제 - AniActivity.javapacka.. 2015. 3. 25.
반응형