일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- javaservlet
- paging
- 제네릭
- jQueryUI
- fullcalendar
- JPQL
- Generic
- jscalendar
- jQuery값전송
- fetchjoin
- springflow
- 프로젝트생성
- Hibernate
- values()
- JPA
- jQuery값전달
- JQuery
- 제너릭
- namedQuery
- 대량쿼리
- 스프링데이터흐름
- joinfetch
- calendar
- 페이징
- LIST
- javascriptcalendar
- 벌크연산
- 자바서블릿
- 페치조인
- 엔티티직접사용
- Today
- Total
목록공부 (253)
가자공부하러!
1. 문제점 > 객체를 테이블에 맞추어 데이터 중심으로 모델링하면, 협력 관계를 만들 수 없다. - 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다. - 객체는 참조를 사용해서 연관된 객체를 찾는다. 2. 단방향 연관관계 > 단방향 매핑으로 끝내는게 베스트 - 단방향 매핑만으로도 이미 연관관계 매핑은 완료된 것이기 때문 > 객체 지향 모델링 - Member가 필드로 Team타입의 변수를 가짐 - @ManyToOne, @JoinColumn(name = "TEAM_ID") 3. 양방향 연관관계 > FK로 엮인 DB 테이블 끼리는 JOIN을 통해 서로의 데이터를 쉽게 조회할 수 있다. > Entity가 테이블처럼 동작하기 위해서는 별도의 작업이 필요하다. > 객체는 가급적 단반향 연관관계를 갖게끔 ..
1. 엔티티 매핑 종류 > 객체와 테이블 매핑 : @Entity, @Table > 필드와 컬럼 매핑 : @Column > 기본 키 매핑 : @Id > 연관관계 매핑 : @ManyToOne, @JoinColumn 2. 객체와 테이블 매핑 > @Entity - NoArgs 생성자 필수 - final 클래스, enum, interface, inner 클래스 불가 - 필드에 final 불가 > @Table(name = "DB테이블이름", catalog = "", schema = "", uniqueConstraints = "") 3. DB스키마 자동 생성 > 애플리케이션 실행 시점에 테이블을 만들 수 있음 > 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성 > 방법 : persistence.x..
em : EntityManager tx : EntityTransaction 1. JPA에서 가장 중요한 2가지 > 객체와 RDB 매핑 설계(정적) > 영속성 컨텍스트 : 실제 JPA가 내부에서 어떻게 동작하는가에 대한 내용 2. 영속성 컨텍스트란? > 엔티티를 영구 저장하는 환경 이라는 뜻 > 영속성 컨텍스트는 눈에 보이지 않기 때문에 엔티티 매니저를 통해서 영속성 컨텍스트에 접근(엔티티 매니저마다 1:1로 존재) > 엔티티의 생명주기 - 비영속(new) : @Entity 객체만 생성되어있는 상태 - 영속(managed) : 영속성 컨텍스트에 관리되는 상태 (em.persist(객체); 등의 코드를 통해) - 준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 - 삭제(removed)..
소스코드 : https://github.com/HyeongJunMin/SpringBootOnmacOS/tree/master/ex1-hello-jpa **주의 : EntityManagerFactory는 애플리케이션 전체에 하나만 생성해서 공유. **주의 : EntityManager는 쓰레드간 공유하면 안됨 **주의 : JPA의 모든 데이터 변경은 트랜잭션 안에서 실행해야 함 1. 개발환경 > Mac OS > H2 DB (http://h2database.com/html/main.html) - 장점 : 웹용 쿼리툴 제공, 시퀀스/AutoIncrement 모두 지원 - 설치 : 압축풀고 bin에 h2.sh 실행(터미널에서 권한주고 ./h2.sh) - 브라우저콘솔에서 접속 안될 때 : JDBC URL 란에 jdb..
이게 왜안되나 싶을때는 아래 코드를 사용해보세요 $ sudo mysql -u root 참고 : http://w3devlabs.net/wp/?p=19736 1. 설치(terminal) > $ brew install mariadb > $ brew install mysql 2. 실행 > DB 시작 : $ mysql.server start > DB 종료 : $ mysql.server stop > DB 상태확인 : $ mysql.server status > DB 커맨드 : $ mysql -uroot > 데이터베이스 확인 : mysql> show databases; 3. 계정생성 > 데이터베이스 선택 : mysql> connect [DB이름]; 또는 mysql> use [DB이름]; > 유저확인 : mysql 데이..
1. 요약 > CKEditor에 클립보드 이미지를 붙여넣거나, 이미지 업로드 버튼을 통해 textarea에 이미지를 올리면 Ajax 통신을 통해 해당 이미지 파일을 즉시 저장 2. 코드 > JSP - 파일 업로드 URL : /ck/fileupload - ctx는 ContextPath > Controller - 수행 결과로 json형태의 문자열을 리턴 package com.rhymes.app.common.controller; import java.io.File; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import org.apache.commons.io.FileUtils; import org.json.JSONObje..
결과 : > jar로 패키징하면 뷰(jsp)파일들이 안들어감 > war로 패키징해서 내장톰캣을 활용하려고 하니까 SAXParseException 발생 > SAXParseException 해결에 시간이 너무 오래걸려서 tomcat8.5활용으로 마무리 1. SAXParseException - 문제 > war파일로 패키징해서 cmd에서 run했더니 run까지는 잘 됨 > 뷰를 접근하려고 브라우저에서 URL을 입력했더니 500에러 발생. 로그는 위와 같음. - 해결 > $JAVA_HOME/lib/jaxp.properties 파일에 javax.xml.accessExternalSchema = all 입력 > 실패 > $JAVA_HOME/jre/lib/jaxp.properties 파일에 javax.xml.access..
참고 : https://docs.jboss.org/hibernate/stable/orm/userguide/html_single/Hibernate_User_Guide.html 참고 : https://www.slideshare.net/visualkhh/hibernate-start 참고 : https://www.youtube.com/watch?v=Y0tUaidXRqo 참고 : https://bcho.tistory.com/906 참고 : https://onecellboy.tistory.com/349 1. ORM? Hibernate? 1. ORM? > Object Relation Mapping - 애플리케이션의 클래스와 DB 테이블 사이의 매핑 정보를 기술한 메타데이터를 기반으로, 자바 애플리케이션 객체를 DB테..
Logback 설정과 활용 - 파일로 저장 : https://dotheright.tistory.com/246 목표 : ERROR 레벨 로그 발생 시 이메일로 로그 전송 1. 소스코드 1. pom.xml > 메일 전송을 위한 추가 디펜던시 javax.activation activation 1.1.1 javax.mail mail 1.4 2. logback-spring.xml > SMTP appender 설정 부분만 smtp.naver.com 587 alsgudwns007 ******* 01068889859@hanmail.net alsgudwns007@naver.com TESTING: %logger{20} - %m 1 false 2. 결과
환경설정 : https://dotheright.tistory.com/254 (Github 기초(1) - 로컬에 생성된 프로젝트를 새 원격저장소에 저장) 1. 브랜치 생성 1. 새 브랜치 생성 1.1. 브랜치 버튼 클릭 1.2. 새 브랜치 이름 입력 1.3. 브랜치 생성 버튼 클릭 1.4. 브랜치 생성 버튼을 클릭하는 시점(1.1)에 선택되어 있던 브랜치의 내용이 똑같이 복사됨 2. 기존 master 브랜치에 없던 내용을 새 브랜치에 입력하고 커밋 3. 새 브랜치에서 작업한 내용이 잘 저장되었는지 확인 3.1. github 레파지토리에서 확인 3.2. 브랜치를 변경할 때 마다 IDE에서 소스코드 변동내용 확인 - 브랜치 변경은 소스트리 좌측 브랜치 부분에서 선택할 브랜치 더블클릭 2. 브랜치 병합 1. m..
1. 개발환경 1. Spring Boot 2.1.9(maven, JSP, JPA, Mybatis, JDK 8) 2. Maria DB 3. SourceTree(3.2.6) 4. Windows 10 2. 순서 1. 프로젝트 생성 2. SourceTree 설치 > BitBucket 계정 생성(Atlassian) 3. Github 계정 생성 및 새 레파지토리 생성 4. 1에서 만들어둔 프로젝트를 새 레파지토리에 저장 4.1. 프로젝트 경로에서 빈 공간에 오른쪽 클릭 -> Git Bash Here 4.2. git init 입력 4.3. git add . 입력 4.4. git commit -m "커밋메세지" 입력 4.5. git remote add origin 깃헙주소.git 입력 4.6. git remote -v..
1. ec2 > 참고 : https://jojoldu.tistory.com/263 - 순서정리 : ec2인스턴스 생성 및 시작 -> 보안그룹 설정(인바운드 규칙) -> java 버전업그레이드 -> 톰캣 설치 -> war파일 톰캣경로에 저장 -> 톰캣 start - user : ec2-user - 보안그룹 생성, 8080포트 모두 접근 가능하게끔 인바운드 규칙 설정(AWS 웹) - ec2 jdk 8로 업그레이드(putty) - ec2에 tomcat8 설치(putty) > 참고 : https://sarc.io/index.php/aws/520-aws-ec2-linux-10-apache-tomcat - ec2-user에 CRUD 권한 부여(putty) > 참고 : https://muckycode.blogspot..