배움장 - 0tak

2023년 1월 9일부터 1월 11일까지

2023-01-11

기존 DAO 소스코드 일부

public AccountVO selectByUsername(String username) {
	String sql = "SELECT * FROM accountsTBL WHERE ausername = ? AND adisabled = FALSE";
	
	AccountVO account = null;
	PreparedStatement pstmt = null;
	try {
		pstmt = con.prepareStatement(sql);
		pstmt.setString(1, username);
		ResultSet rs = pstmt.executeQuery();
		
		if (!rs.isBeforeFirst() ) {    
			return null;
		} else {
			rs.next();
			account = new AccountVO(rs.getInt("ano"), rs.getString("aname"), rs.getString("adepartment"), rs.getString("abirth"), rs.getString("acreatedAt"), rs.getString("aphone"),
					rs.getString("aemail"), rs.getString("aaddr"), rs.getInt("apoint"), rs.getInt("alevel"), rs.getString("ausername"), rs.getString("apassword"));
		}
		
	} catch (SQLException e) {
		e.printStackTrace();
	}
	
	return account;
}

수정 DAO 소스코드 일부

public AccountVO selectOne(AccountVO targetAccount) {
	AccountVO foundAccount = null;
	
	try {
		foundAccount = session.selectOne("liverary.account.select", targetAccount);			
	} catch (Exception e) {
		throw e;
	}
	
	return foundAccount;
}

 

Mapper XML


<?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="liverary.account">
	<select id="select"
		parameterType="Account" resultType="Account">
			SELECT * FROM accountsTBL 
			<if test='ano != 0' >
				WHERE ano = #{ano} 
			</if>
			<if test='ausername != null' >
				WHERE ausername = #{ausername} 
			</if>
			<if test='aname != null' >
				WHERE aname = #{aname} 
			</if>
			<if test='alevel >= 1' >
				<![CDATA[
					AND alevel >= 1
				]]>
			</if>
			AND adisabled = FALSE
	</select>

<!-- 후략 -->