본문 바로가기
수업(국비지원)/Mybatis

[MYBATIS] (MVC 2) UserDao, UserMapper

by byeolsub 2023. 4. 21.

📌 UserDao.java 내용 수정

package dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import dao.mapper.UserMapper;
import logic.User;

@Repository
public class UserDao {
	@Autowired //sqlSessionTemplate 객체 주입
	private SqlSessionTemplate template;
	private Map<String, Object> param = new HashMap<>();

	public void insert(User user) {
		            template.getMapper(UserMapper.class).insert(user);
	}

	public User selectOne(String userid) {
		param.clear();
		param.put("userid", userid);
		//EmptyResultDataAccessException : 해당 레코드 없을 때 예외 발생
		return template.getMapper(UserMapper.class).selectOne(param);
	}

	public void update(User user) { 
		            template.getMapper(UserMapper.class).update(user);
	}

	public void delete(String userid) {
		param.clear();
		param.put("userid", userid);
		template.getMapper(UserMapper.class).delete(userid);
	}

	public void chgpass(String userid, String pass) {
		param.clear();
		param.put("userid",userid);
		param.put("password",pass);
		template.getMapper(UserMapper.class).chgpass();
	}

	public String search(User user, String url) {
		param.clear();
		param.put("email", user.getEmail());
		param.put("phoneno", user.getPhoneno());
		param.put("col","userid");
		if(url.equals("pw")) {
			param.put("userid",user.getUserid());
			param.put("col","password");
		}
		return template.getMapper(UserMapper.class).search(param);
	}

	public List<User> list() {
		return template.getMapper(UserMapper.class).list();
	}
}

 

 

📌 UserMapper.java 생성

package dao.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import logic.User;

public interface UserMapper {

	@Insert("insert into useraccount"
			 + " (userid, password, username, phoneno, postcode, address, email, birthday)"
			 + " values(#{userid}, #{password}, #{username}, #{phoneno}, #{postcode}, #{address}, #{email}, #{birthday})")
	void insert(User user);

	@Select("select * from useraccount where userid=#{userid}")
	User selectOne(Map<String, Object> param);

	@Update("update useraccount set username=#{username}, birthday=#{birthday}, phoneno=#{phoneno}, postcode=#{postcode},"
			 + "address=#{address}, email=#{email} where userid=#{userid}")
	void update(User user);

	@Delete("delete from useraccount where userid=#{userid}")
	void delete(String userid);

	@Update("update useraccount set password=#{password} where userid=#{userid}")
	void chgpass();

	 @Select({"<script>",
		  "select ${col} from useraccount",
		  "<trim prefix='where' prefixOverrides='AND||OR'>"
		 + "<if test='userid != null'> and userid=#{userid}</if>"
		 + " and email=#{email} and phnone=#{phnone}</trim>",
		 "</script>" })
	 String search(Map<String, Object> param);

	@Select("select * from useraccount ")
	List<User> list();

}