SQL

Programming/Spring

[Spring Boot] JPA(Java Persistence API), Hibernate, Spring Data JPA

JPA(Java Persistence API)는 자바의 ORM(Object-Relational Mapping) 기술을 쉽게 구현하도록 도와주는 API이다. JpaRepository를 상속하는 인터페이스에 메서드 이름만 작성하면, JPA가 구현체를 생성하고 필요한 쿼리문을 자동으로 처리한다. 따라서 개발자는 SQL을 작성할 필요 없이 간단한 메서드 명칭만으로도 데이터베이스를 조작할 수 있다. JPA는 엔티티(Entity)라는 클래스를 이용하여 객체를 데이터베이스에 매핑한다. 엔티티는 개발자에게 테이블 또는 레코드와 유사한 개념이다. 객체를 이용하여 매핑을 처리하므로, 개발자는 객체지향적인 코드를 작성할 수 있다. JPA를 사용하면 CRUD(Create, Read, Update, Delete) 작업을 간편하..

Programming/Spring

[Spring] 이상형 월드컵 웹 애플리케이션 개발 과정

사용자에게 여러 가지 선택지를 제시하고, 그 중에서 선호하는 것을 선택하여 대결을 진행하는 웹 기반 이상형 월드컵을 만들어 보도록 하자. 이상형 월드컵을 사용자가 진행할 때 하나의 페이지에서 화면이 바뀌면서 진행되어야 하므로 데이터를 유지하기 위해 세션 객체를 사용해 보려고 한다. Spring 프로젝트에서 사용자가 선택한 이상형 월드컵 결과를 저장하고 관리하는 시스템을 구현하면서 코드를 검토하고 각 계층에서 사용한 기술을 점검해 보려고 한다. 💡Spring Framework Spring Framework는 자바 기반의 엔터프라이즈 응용 프로그램을 개발하기 위한 전체적인 인프라를 제공하는 경량 프레임워크로, 의존성 주입(Dependency Injection)과 관점 지향 프로그래밍(Aspect-Orient..

Portfolio/Service

[대재미: A1] SPARCS Service Hackathon 2024 데이터베이스

eXERD로 ERD(Entity Relationship Diagram) 데이터 모델링을 진행하였다. 데이터베이스에서 ERD는 효율적으로 데이터 관계를 확인하기 위해서 필수로 수행해야 하는 작업이지만, 해커톤 기간임을 고려하여 최대한 간단하게 작성하였다. 해커톤에서 다른 개발자들의 데이터 모델링을 확인해 보니 eXERD보다는 ERDCloud를 사용하는 듯했다. 하나의 ERD에 많은 사람들이 접속할 수 있다고 해서 바꿔 보려고 한다. 데이터 모델링 이후에는 DBeaver로 DDL(데이터 정의어), DML(데이터 조작어)을 작성하였다. DDL은 데이터베이스의 구조를 정의하는 데 사용되며, 테이블 생성, 변경, 삭제 등의 작업을 포함한다. 그리고 DML은 데이터를 검색, 삽입, 수정, 삭제하는 작업을 다루며, ..

Programming/JDBC

[JDBC] Statement: PreparedStatement, CallableStatement

🍁PreparedStatement Statement와 PreparedStatement 차이 Statement는 정적 SQL을 만들 때 사용하며, PreparedStatement는 동적 SQL를 만들 때 사용한다. 매개변수가 없으면 정적 쿼리, 매개변수가 있으면 동적 쿼리를 의미한다. 정적 쿼리와 동적 쿼리 정적 SQL String sql = "INSERT INTO tblAddress (seq, name, age, gender, address, regdate) VALUES (seqAddress.nextVal, 'Sopia', 21, 'f', '서울시 강남구 대치동', default)"; String sql = "INSERT INTO tblAddress (seq, name, age, gender, addre..

Programming/JDBC

[JDBC] Statement: Statement 기본형 (정적 SQL)

🍁JDBC 라이브러리 클래스 1. Connection DB에 연결 또는 종료한다. 2. Statement 모든 SQL을 실행하는 역할을 한다. 3. ResultSet 데이터베이스로부터 쿼리의 결과를 저장하고 조회한다. ResultSet 클래스는 Interator, 향상된 for문, 스트림, 커서와 비슷하다. Statement의 종류 1. Statement 기본형이다. 매개 변수 처리가 번거롭다. 안정성과 가독성이 낮다. 2. PreparedStatement 개량형이다. 매개 변수 처리에 특화되어 있다. 안정성과 가독성이 높다. 기존 Statement에 매개변수 처리 과정을 손쉽고 안전하게 할 수 있게 만든 게 PreparedStatement이다. 3. CallableStatement 개량형이다. 프로시저..

Programming/Oracle

[Oracle] DB백업 덤프(dump) 파일 내보내기

💡dump 파일 생성 계정 생성 및 권한 부여 CREATE USER id IDENTIFIED BY pw; GRANT CONNECT, RESOURCE, DBA TO id; id와 pw를 설정하여 새로운 계정을 생성한다. 요구사항 백업 생성한 테이블 4개와 시퀀스를 backup_자신이름_전화번호뒷자리.dmp 로 백업하세요. 백업한 파일은 .sql과 함께 제출한다. CMD 계정이 가지고 있는 모든 것들을 하나의 파일로 내보내기를 할 수 있다. 그래서 계정을 새로 하나 만든 것이다. EXP id/pw FILE=backup.dmp CMD에 위 코드를 입력하면 dump 파일이 CMD를 실행한 폴더(Oracle 폴더) 내에 생성된다. 더보기

Programming/Oracle

[Oracle] 인덱스 (Index)

🏷️인덱스 인덱스(Index)는 검색을 빠른 속도로 하기 위해 사용하는 도구이다. SQL 명령 처리 속도를 빠르게 하기 위해서 특정 컬럼에 대해 생성된다. 📚인덱스는 책의 목차와 다르다! 책의 목차는 페이지 순서대로 어떤 파트인지를 정리해 둔 것이고 인덱스와는 차이가 있다. 인덱스는 페이지가 아닌 영어나 한글(어떤 특정 단어)을 순서대로 정렬해 준다. 인덱스는 특정 단어를 검색해서 어디에 있는지를 찾아내는 검색 도구라고 할 수 있다. 때문에 인덱스는 사람들이 검색할만한 단어들을 모두 찾아놓는다. 다른 사람들이 특정 단어를 많이 검색할 거 같다면 인덱스는 그게 몇 번째 페이지(위치)에 있는지를 미리 정리해 둔다. 데이터베이스의 정렬 상태 아쉽게도 데이터베이스는 테이블 내의 레코드 순서가 사용자가 원하는 정..

Programming/Oracle

[Oracle] 근태 조회📅

💡근태 조회 근태 테이블을 만들어 9월의 근태 조회를 할 수 있도록 해보자. 그런데 출결이 있는 경우에만 조회가 되고, 결석한 날짜 또는 주말, 공휴일에는 근태 조회가 안 되고 있다. 이러한 빠진 날짜 메꾸는 작업은 꼭 근태 데이터가 아니더라도 많은 곳에서 쓰일 수 있다. 1. ANSI-SQL 2. PL/SQL 3. JAVA 위의 3가지 방법으로 근태 조회를 할 수 있다. PL/SQL과 JAVA에서는 for문으로 구현을 하며, ANSI-SQL에서는 계층형 쿼리로 구현을 한다. 먼저 PL/SQL로 구현하는 방식을 알아보도록 하자. create table tblDate ( seq number primary key, state varchar2(30) not null,--근태 상황 regdate date not..

Isaac-Christian
'SQL' 태그의 글 목록