mybatis(13)
-
Mybatis where절 if문으로 처리
SELECT * FROM your_table AND column1 = #{param1} AND column2 = #{param2} AND column3 LIKE CONCAT('%', #{param3}, '%')
2025.01.19 -
Mybatis 쿼리 결과 출력하기
Interceptor 생성import lombok.extern.slf4j.Slf4j;import org.apache.ibatis.executor.parameter.ParameterHandler;import org.apache.ibatis.executor.statement.StatementHandler;import org.apache.ibatis.plugin.*;import org.apache.ibatis.mapping.BoundSql;import java.sql.Connection;import java.util.Properties;@Slf4j@Intercepts({ @Signature(type = StatementHandler.class, method = "prepare", args = {Conne..
2025.01.18 -
Mybatis 반복문 처리
쿼리 쿼리 쿼리
2025.01.15 -
Mybatis ${} 사용시 SQL Injection 피하기
// Example: Validate column names and operatorsList validColumns = Arrays.asList("column1", "column2", "column3");List validOperators = Arrays.asList("=", "", "=", "like");for (Map condition : conditions) { String column = (String) condition.get("data"); String operator = (String) condition.get("compare"); if (!validColumns.contains(column)) { throw new IllegalArgumentException("..
2025.01.15 -
Mybatis REGEXP_LIKE 사용시 에러
Mapper.xml AND ${condition.data} ${condition.compare} CASE WHEN NOT REGEXP_LIKE(#{condition.value}, '^\d+(\.\d+)?$') THEN #{condition.value} ELSE TO_CHAR(TO_NUMBER(#{condition.value})) END에러java.sql.SQLSyntaxErrorException: ORA-00932: 일관성 없는 데이터 유형: CHAR이(가) 필요하지만 NUMBER임쿼리 결과 AND DATA1 = CASE WHEN NOT REGEXP_LIKE('EX', '^\d+(\.\d+)'EX'$') THEN 'EX' ELSE ..
2025.01.15 -
Mybatis null처리를 위한 <If>와 NVL 비교 2025.01.12