package com.sealong.dao;
import com.sealong.domain.Account; import org.apache.ibatis.annotations.*; import org.apache.ibatis.mapping.FetchType;
import java.util.List;
public interface IAccountDao { /** * 查询所有用户 * @return */ @Select("select * from account") /** * 定义一个Results * id为该Results的名字,可以供其他方法调用 * value为一个包含Result对象的数组 * Result的column表示数据表的字段名, * property为数据表当前column字段所映射的对象的属性 * id表示该column该字段是否为主键,默认条件下为非主键 * one用于表与表之间一对一映射时使用 * one的select属性,一对一查询所要执行的方法名 * fetchType表示数据加载形式(FetchType.EAGER表示立即加载,FetchType.LAZY表示懒加载 */ @Results(id = "accountMap" ,value = { @Result(id = true,column = "id" ,property = "id"), @Result(column = "uid",property = "uid"), @Result(column = "money" ,property = "money"), @Result(property = "user",column = "uid", one=@One(select="com.sealong.dao.IUserDao.findOneById",fetchType= FetchType.EAGER)一对一查询使用
/ many=@Many(select="com.sealong.dao.IUserDao.findOneById",fetchType= FetchType.EAGER)一对多查询使用) }) List<Account> findAll(); }
package com.sealong.dao; import com.sealong.domain.User; 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 java.util.List; public interface IUserDao { /** * 通过用户Id查找一个用户 * @param userId * @return */ @Select("select * from user where id = #{id}") User findOneById(Integer userId); }
