Java/mybatis(16)
-
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
-
Mybatis 로그 설정
logback/resourcs/logback-spring.xml %d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n Spring bootapplication.propertieslogging.level.org.mybatis=DEBUGlogging.level.org.apache.ibatis=DEBUGlogging.level.java.sql.PreparedStatement=DEBUGlogging.level.java.sql.Statement=DEBUGlogging.level.java.sql.ResultSet=DEBUGapp..
2024.12.28 -
Mybatis insert후 키값 반환하기
쿼리 SELECT to_char(current_timestamp,'yyyymmdd')||lpad(nextval('seq_test')::TEXT, 3, '0') INSERT INTO test( id, name ) VALUES ( #{id}, #{name} )서비스public String create(Map attach) { testMapper.create(attach); return attach.get("id").toString(); // Retrieve pre-generated ID}
2024.12.27 -
Mybatis if ~ else 적용하기
사용 SELECT * FROM users WHERE 1=1 AND name = #{name} AND age = #{age} AND status = 'active' 사용 SELECT * FROM users name = #{name} age = #{age} 응용 SELECT * FROM users name = #{name} ..
2024.11.27