본문 바로가기

백엔드287

mysql/postgresql 중복되는 데이터 항목 찾기 중복 데이터 찾기 mysql 에서 특정 컬럼에서 중복되는 항목이 있는지 찾고자 한다. 컬럼 하나일 때 select 컬럼이름 , count(컬럼이름) from 테이블이름 s group by 컬럼이름 having count(컬럼이름) > 1 컬럼 여러개일 때 select 컬럼이름1, 컬럼이름2, 컬럼이름3, count(컬럼이름1) from 테이블이름 s group by 컬럼이름1, 컬럼이름2, 컬럼이름3 having count(컬럼이름1) > 1 select title,date,site , count(title) from tablename s group by title ,date,site having count(title) > 1 2022. 4. 5.
[spring] (pgjdbc: autodetected server-encoding to be ISO-8859-1, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf) postgresql 에 데이터를 삽입하는 과정에서 생긴 오류였다. org.postgresql.util.PSQLException: 오류: "ì " 값은 "MM"에 ìœ íš¨í•˜ì§€ 않음 (pgjdbc: autodetected server-encoding to be ISO-8859-1, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf) Detail: 값은 ì •ìˆ˜ì—¬ì•¼ 합니다. 오류가 발생한 이유는 DB User 정보를 잘못 적었거나 User 정보가 없을 경우에 발생한다고 한다. DB업데이트가 이루.. 2022. 3. 31.
[spring] spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning JPA 프로젝트를 빌드하는데 다음과 같은 에러가 나오고 화면이 나오지 않았다. spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 이러한 오류가 생기는 것은 Spring Boot에서는 spring.jpa.open-in-view를 true로 설정하고 있는데 OSIV(Open Session In View) 측면에서 매우 부적절하다고 한다. 즉 성능이나 확장성 측면에서 볼 때 false로 해야 하는데 true로 하고 있어 warning .. 2022. 3. 31.
[Tomcat] JSESSIONID JSESSIONID 란 세션이 생성될 때 JSESSIONID쿠키가 생성 / 전송되는데, 톰캣 컨테이너에서 세션을 유지하기 위해 발급하는 키이다. HTTP 프로토콜은 stateless 하기 때문에 요청시마다 새로운 연결이 생성되고 응답 후 연결은 끊기게 되므로 상태를 유지할 수 없기 때문에 따라서 상태를 저장하기 위해서 톰캣은 JSESSIONID 쿠키를 클라이언트에서 발급해주고 이 값을 통해 세션을 유지할 수 있도록 한다. 한계 톰캣 컨테이너를 2대 이상 사용할 경우 세션을 유지할 수 없다. 유지되기 위해선 세션 클러스터링 환경을 구축해야 한다. 2022. 3. 28.
JPA와 Mybatis 비교 (ORM, SQL Mapper) ORM(Object-Relational Mapping) 객체 관계 매핑 데이터베이스의 데이터를 자동으로 매핑해주는 것 RDB에 데이터 그 자체와 매핑하기 때문에 SQL을 직접 작성할 필요 없음 DB에 대한 종속성이 줄어듬 객체지향적 접근으로 생산성 증가 메소드 호출만으로 CRUD를 구현가능 JPA(Java Persistence API) - 자바 ORM기술에 대한 API 표준 명세로 Java에서 제공하는 API - 기존에 EJB에서 제공되던 엔터티 빈(Entity Bean)을 대체하는 기술 장점 RDB 종류 관계없이 사용가능 DB 변경이나 코드 재활용에 용이 기본적인 CRUD 제공이나 페이징 처리 등 구현되어 있어서 비즈니스 로직에 집중가능 테이블 생성, 변경 등 엔티티 관리 편함 쿼리에 집중할 필요 없이.. 2022. 3. 27.
[JPA] insertable, updatable @ManyToOne 어노테이션을 이용해서 참조 관계를 만들고 데이터 저장을 하는데 참조키(외래키)의 값이 null 이라고 에러가 뜨면서 저장이 되지 않았다... 외래키값이 저장되지 않은 이유는 다음 설정값이 저장되어 있었다. @JoinColumn(insertable = false, updatable = false) insertable = false 는 insert 시점에 막는 것이고 updateable = false 는 update 시점에 막는 기능이다. insertable : 엔티티 저장 시 이 필드도 같이 저장한다. false 로 설정하면 데이터베이스에 저장하지 않는다. 읽기 전용일 때 사용한다. updateable : 엔티티 수정 시 이 필드도 같이 저장한다. false 로 설정하면 데이터베이스에 .. 2022. 3. 26.