Back-end/java

DBeaver에서 컬럼명 언더바 오류 해결

Nellie Kim 2023. 9. 19. 10:16
728x90

1. mybatis-config.xml

 

아래 세팅 추가!

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

 // 아래 세팅 추가!
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

 

2. mapper.xml 

 

<resultMap~ > 으로 시작하는 설정 추가! 

DB에 있는 컬럼명을 현재 VO 명과 맞추는 작업이다. 

 

그리고 원하는 쿼리로 내려가서, 만들어준 설정의 값(resultMap = "userResultMap") 을 넣어준다! 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<!--회원가입-->
<mapper namespace="com.example.first.mapper.HomeMapper">

<!--아래 설정 추가!!-->
<resultMap id="userResultMap" type="com.example.first.dto.UserDto">
    <id property="userId" column="user_id"/>
    <result property="username" column="username"/>
    <result property="name" column="name"/>
    <result property="nickname" column="nickname"/>
    <result property="password" column="password"/>
    <result property="phoneNumber" column="phone_number"/>
    <result property="profilePictureLocation" column="profile_picture_location"/>
    <result property="zipcode" column="zipcode"/>
    <result property="streetAdr" column="street_adr"/>
    <result property="detailAdr" column="detail_adr"/>
</resultMap>

    <!--    사용자 메일로 사용자 가져오기-->
    <select id="findByUsername" parameterType="java.lang.String" resultType="com.example.first.dto.UserDto"  resultMap="userResultMap">
        SELECT "userId", password, name, username, nickname, phone_number, zipcode, street_adr, detail_adr
        FROM postgres.first_project.users
        WHERE username = #{username}
    </select>

</mapper>