개발.log/database 3

[Mybatis][Mysql] <[![CDATA[…]]> 사용법/CDATA 꼭 써야하나?/XML Parser 문자열인식

백엔드 프로젝트를 하면 쿼리를 작성하고 Back logic을 작성할 일이 많아지는데 그때, SQL Mapper로 MyBatis를 쓰면서 mapper.xml 파일에 라고 쓰인 것을 자주 보았을 것이다. [개발하면서 뜬금없는 호기심 1탄] Mybatis 모든 쿼리문에 꼭 CDATA를 사용해야할까? CDATA 란? 쿼리를 작성할 때 '', '&'를 사용해야 하는 경우가 생기는데 xml에서 그냥 사용하면 mapper에 작성된 , 와 같은 태그로 인식한다. 그렇다면 mapper.xml에 작성된 태그 괄호와 달리 이 등호는 '쿼리에 필요한 코드'라고 알려줘야 한다. 그때 사용하는 것이 이다. 사용법 XML에서 파싱 할 대상으로 인식하지 하지 않도록 그 구역을 지정해 주는 것이 CDATA이다. XML로 파싱을 원하지..

개발.log/database 2023.09.20

[Mysql][MariaDB] 서로 다른 테이블 동시에 UPDATE 하는 법/다른 테이블을 참조하여 UPDATE 하는 방법

하나의 Model DTO에 담긴 데이터로 두 개의 UPDATE 처리를 해야한다면? 지금까지는 정석대로 2개를 순차적으로 수행시키는 방법으로 해왔다. 하지만, 뭔가 귀찮다는 생각이 들었다... 그리고 DTO를 중복해서 넘겨서 사용하는 것도 뭔가 불필요하다고 생각했다... 한번 작성한 DTO parameter 코드를 중복하지 않고 한번에 쿼리로 처리를 하는 방법을 쓰려면 어떻게 쿼리를 작성해야할까 고민하다가 다음과 같은 방법으로 해결하였다. Oracle, MS-SQL, Maria DB, Mysql DBMS마다 다른 문법을 지원하므로 방법도 각자 다르니 본인 상황에 맞는지 확인해야한다 MySQL and MariaDB UPDATE SR0001 a, SR0002 b SET a.dstba = #{dstba} b.t..

개발.log/database 2023.09.20

[ORACLE] PL/SQL(Procedural Language/SQL)이란?

DataBase 하면 Oracle. 거의 수식어처럼 말하게 되는 것 중 하나이다. 여느 때와 다름없이 프로젝트를 수행하던 중 Oracle이라는 PL/SQL을 처음 듣게 되었다. PL/SQL 이란? SQL을 확장한 절차적 언어(Procedural Language) 관계형 데이터베이스에서 사용되는 Oracle의 표준 데이터 액세스 언어이다. 쉽게 말해 SQL의 단점을 보완한 SQL의 확장판이라고 말할 수 있다. PL/SQL은 블록형 구조를 가지고 있으며 스스로가 컴파일 엔진을 포함하고 있다. 또한 DML과 Query문, 절차형 언어(IF문, LOOP) 등을 사용하여 절차적 프로그래밍이 가능한 강력한 트랜잭션 언어이다. 장점 및 사용하는 이유 PL/SQL의 특징 중 하나인 블록형 구조가 주목받는 이유는 다수의..

개발.log/database 2022.12.16