본문 바로가기
JPA 어플리케이션 개발 jpa 구동 방식 persistance에서 생성하고 entitymanagerfactory 에서 entitymanager를 찍어내서 돌린다 public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager entityManager = emf.createEntityManager(); // 실제 동작 코드를 작성하는 부분 entityManager.close(); emf.close(); } } h2에 테이블 생성 create table Member ( id bigint not null, name varch.. 2023. 10. 29.
JPA 프로젝트 생성 h2 1.4.200 으로 시작 이상태로 시작하기 인텔리제이 new project - maven으로 새 프로젝트를 만들고 porm.xml 4.0.0 jpa-basic ex1-hello-jpa 1.0.0 org.apache.maven.plugins maven-compiler-plugin 3.8.1 8 8 org.hibernate hibernate-core 5.4.29.Final javax.xml.bind jaxb-api 2.3.1 com.h2database h2 1.4.200 ch.qos.logback logback-classic 1.2.3 persistance.xml jpa는 특정 데이터베이스에 종속 되지 않고 hibernate.dialect 속성에 지정해주면 그 db에 맞게 바뀐다 • H2 : org.h.. 2023. 10. 29.
페이징 페이징을 사용하는 이유 - 목록이 100만개일때 100만개 전부를 select로 한번에 가져오는 것은 엄청난 부하가 걸린다 데이터베이스에서 데이터 양을 적당히 끊어서 가져오는 것을 페이징이라고 한다, 페이징에는 2가지 형태가 있다 Offset based paging - 페이지 번호를 찾아서 이동하는 페이징 select* from book order by likes desc limit 10 offset 0; 데이터를 10개씩 가져와서 보여주고 0개씩 건너뛴다 limit - 가져오는 데이터의 갯수, offset - 건너뛸 데이터의 양 페이지 x번에 대하여 한 페이지에 y개를 보여주기 select * from book order by likes desc limit y offset(x - 1) * y; Offs.. 2023. 10. 29.
조인, 서브쿼리 조금 더 알아본 내용 조인을 위해서는 기본키(PRIMARY KEY, PK)와 외래키(FOREIGN KEY, FK) 관계로 맺어져야 하고, 이를 일대다 관계라고 한다 조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다. OUTER JOIN(외부 조인)은 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다. CROSS JOIN(상호 조인)은 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능이다. SELF JOIN(자체 조인)은 자신이 자신과 조인한다는 의미로, 1개의 테이블을 사용한다. inner join - 교집합 outer join - 합집합 LEFT.. 2023. 10. 29.
9주차 조인, 서브쿼리 시험에 나오는 유형, 책 103p, 교집합 차집합 내용 다시 보자 -- 책을 한번도 안산 고객을 가져오기 select name from customer c where custid not in (select custid from orders) left outer join으로 customer의 데이터 전체와 orders에서 customer와 연관있는 데이터를 가져왔다 join은 on으로 조건을 표현한다 -- 책을 주문한 고객의 이름과 주문, 책을 출력 select c.name, o.saleprice from customer c left outer join orders o on c.custid = o.custid; 서브쿼리 - where절에 select문을 넣어서 조건을 만드는 것 -- 가격이 가장 비싼 책의.. 2023. 10. 27.
컴알 시험대비 1. 삽입정렬 알고리즘 코드 빈칸문제로 나온다 while 루프 버전 def insertion_sort(a) : n = len(a) for i in range(1,n): j = i -1; key = a[i] while j >= 0 and a[j] > key : a[j+1] = a[j] j -= 1 a[j+1] = key for 루프 버전 def insertion_sort(a) : n = len(a) for i in range(1,n): for j in range(i,0,-1): if a[j-1] > a[j]: a[j-1], a[j] = a[j], a[j-1] 쉘 정렬 4,2,7,1,9 리스트를 나눌 간격인 갭은 전체 리스트 길이 5 // 2 +1인 3으로 시작한다 {4,1}, {2,9}의 부분 리스트를 부.. 2023. 10. 27.
시험대비 리니어 레이아웃 자체는 gravity, 그 안의 컴포넌트는 layout_gravity를 사용한다 gravity 속성은 android : gravity = "right|bottom" 으로 두개를 조합하는 것도 가능하다 background는 그냥 background를 사용한다 radio그룹내의 라디어 버튼은 중복 선택 x 버튼같은 위젯은 backgroundTint 넣자.. 책내용 android:rotation="45" -------------------------------------------------------------- package com.example.compute2;//각자작성한 프로젝트명으로 반드시 변경해야 함 import androidx.appcompat.app.AppCompatActivi.. 2023. 10. 25.
데베교양 확인문제 2023. 10. 25.
모겜프 시험대비 안드로이드 역사 2005 구글이 안드로이드 인수, 2007년 OHA(open handset alliance) 컨소시엄 구성, 2007년 안드로이드 sdk 1.0 발표 최초의 안드로이드 폰 - HTC의 G1 애플리케이션 실행 단계 : java 소스 -> .dex파일 -> .apk 파일 안드로이드를 구성하는 컴포넌트 : 액티비티,서비스,broadcast receiver, content provider 액태비티 -> 화면, 액티비티가 모이면 어플리케이션이 됨 서비스 -> 백그라운드에서 실행되는 컴포넌트(ex - bgm) content provider - 데이터를 관리하고 다른 앱에 제공 인텐트 -> 안드로이드가 적절한 컴포넌트를 찾아서 실행 xml - 화면 디자인, SGML의 부분 집합으로 웹 상에서 텍스트 .. 2023. 10. 23.
데베교양 시험대비 select문, 문자타입함수, 숫자타입함수, NVL, DECODE 사용법 그룹함수, count, sum, avg, max, min erd 키와 제약조건 pdf 8 까지 시험범위 문자, 숫자 처리 함수 시험범위 그룹 함수 소문자, 대문자, 앞에만 대문자로 출력하기 select lower('Chanho_lee'), upper('chanho_lee'), initcap('CHANHO_LEE') from dual; substr- (문자열,시작인덱스,가져올자리수) concat - 결합 select substr('Chanho_lee', 8,3), replace('ChanhoLEE','Chanho','Hoshi'), concat('chanho','lee') from dual; instr - 문자열 시작 위치 리턴 lp.. 2023. 10. 23.
컴알 시험 1220 자료구조 객관식, 알고리즘 주관식 시험문제 알고리즘 수행시간 비교 안나옴 빅오는 안봐도 될듯 알고리즘 이론, 빈칸채우기, 쉘,퀵,힙 정렬 = gap and a[ j] < a[ j-gap]: #삽입 위치를 찾음 a[ j], a[ j-gap] = a[ j-gap], a[ j] #항목 이동 j -= gap print(' Gap =', gap, a) gap = gap//2 data = [5, 3, 8, 4, 9, 1, 6, 2, 7] print("Original :", data) shell_sort(data) print(" Shell :", data) 힙정렬 (파이썬의 힙은 최소힙이다) 힙정렬은 이진힙을 이용해서 하는 정렬이다 완전이진트리 : 모든 레벨의 노드가 채워져있고 마지막 레벨은 왼쪽부터 차있어.. 2023. 10. 20.
안드교양 7주차 레이아웃, 시험범위 시험범위 렐러티브 레이아웃 까지 ! 렐러티브 레이아웃으로 페이지 만들기랑, 위젯 속성(button - backgroundtint로 하는거나 edittext에는 힌트가 있고 등등 위젯 마다 다른 속성, 토스트메세지 이벤트로 텍스트 변경하는거 등등이 나온다) xml 화면 구성이나 이벤트 등등을 주의깊게 보자 리니어 레이아웃 정렬 RelativeLayout 시작은 좌상단, layout_alignParent방향 속성으로 위치 지정 가능, 리니어와 다르게 각각 위치시켜야한다 RelativeLayout을 위젯 id 기준으로 요소 찾기 base 기준으로 상하좌우에 요소를 정렬했다 기준 여러개로 만드는 렐러티브 레이아웃 실습 전화번호 화면 만들기 2023. 10. 19.
모겜프 7주차 볼륨 컨트롤러 과제 volumecontrollerview.java package com.example.MGP_LECTURE; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; public class VolumeControllerView extends ImageView implements View.OnTouchListener { private double angle .. 2023. 10. 19.
데베시험대비 데이터 -> 정보 -> 지식 -> 지혜 -- 도서테이블의 도서 중 가격이 가장 비싼 책과 가장 저렴한 가격을 검색하시오, 2중 셀렉트문 잘 외워두자 select bookname, price from book where price = (select max(price) from book) or price = (select min(price) from book); -- 고객의 주소가 서울이거나 대전에 사는 고객의 이름과 주소를 검색하시오 select name, address from customer where address like '%서울%' or address like '%대전%'; where in 에서는 와일드 카드를 사용할 수 없다 쿼리문 복습, 일단 조인없는 부분만 create table publis.. 2023. 10. 18.
6주차 - 조인 시험에 많이 나옴 select문 연습문제 in과 like는 같이 쓰면 인식이 안된다! show tables; select * from customer; select * from orders; select * from book; -- 고객 번호가 3번인 선수의 이름과 주소를 검색하시오 select name, address from customer where custid = 3; -- 2014년 7월 4일~7월 7일 사이에 주문받은 도서의 주문번호와 주문날짜를 검색하시오 select orderid, orderdate from orders where orderdate between 20140704 and 20140707; -- 이거 틀림 고객의 주소가 서울이거나 대전에 사는 고객의 이름과 주소를 검색하시오 select name.. 2023. 10. 13.
컴알 7주차 이진탐색트리 - 각 노드 n의 키가 n의 왼쪽 서브트리에 있는 키들보다 크고, n의 오른쪽 서브트리에 있는 키들보다 작다. 꼭 자식이 2개여야지만 이진탐색 트리인 것은 아니다 노드를 생성할때는 키와 밸류만 가지고 lt와 rt는 none 상태로 초기화하고 삽입 연산을 통해서 이진탐색트리 탐색, 삽입, 삭제 연산 이진탐색트리 순회 전위순회 - 루트부터 방문해서 맨 처음 나오는게 루트 class Node: def __init__(self, key, value, left = None, right = None): self.key = key self.value = value self.left = left self.right = right class BST: def __init__(self): self.root = .. 2023. 10. 13.
도메인 분석 설계 요구사항 분석 @기능 목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다. 상품의 종류는 도서, 음반, 영화가 있다. 상품을 카테고리로 구분할 수 있다. 상품 주문시 배송 정보를 입력할 수 있다. 주문과 상품 테이블이 바로 연결되는 다대다 관계는 지양해야한다, 그러므로 주문상품 엔티티를 추가해서 다대다 관계를 일대다 다대일 관계로 풀었다 엔티티 FK를 가지는 쪽이 연관관계의 주인으로 설계하는 게 좋다 2023. 10. 13.
7주차 날짜 연산 시간을 더할때는 /24로 나눠서 더하고 날짜끼리 계산할때는 to_date 메서드를 사용한다 select to_char (sysdate, 'YY/MM/DD/HH24:MI') 오늘날짜, sysdate + 1 더하기1, sysdate -1 빼기1, to_date('20171202')- to_date('20171201') 날짜빼기, sysdate + 13/24 시간더하기 from DUAL; select next_day('20231012',6) from DUAL; 2023. 10. 12.
7주차, 시험 이미지뷰, 이미지도 온클릭 설정 가능하다 package com.example.androidapp; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity{ TextView txt10, txt20, txt30; ImageView img10, img20, img30; @Ov.. 2023. 10. 12.
시험대비 에디트 텍스트와 버튼의 온클릭 이벤트를 이용해서 버튼을 클릭하면 에디트 텍스트의 텍스트가 버튼에 토스트 메세지로 나오는 코드 EditText editText = findViewById(R.id.edit1); Button btn = findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String str = editText.getText().toString(); Toast.makeText(getBaseContext(),str,Toast.LENGTH_LONG).show(); } }); 좌표값 받아오는 코드 package com.example.AAP; .. 2023. 10. 12.