mybatis使用注解

IAccountDao

package cn.edu.hznu.dao;

import cn.edu.hznu.doamin.Account;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.mapping.FetchType;
import java.util.List;

/**
 * Created by wjj on 2020/4/1
 */
@CacheNamespace(blocking = true)
public interface IAccountDao {
    /*
    * 查询所有的账户信息并显示所属用户的信息
    * */
    @Select("select * from account")//sql语句
    @Results(id="AccountMap",//配置id属性,以后别的方法也可以引用
            value={//xml文件中的result
            @Result(id=true,column = "id" ,property = "id"),//id属性,是否主键 使用column和property将数据库中的列名和实体类中的属性名进行映射
            @Result(column = "uid" ,property = "uid"),
            @Result(column = "money" ,property = "money"),
            @Result(property = "user",column = "uid",//column 使用哪个属性进行查询
                    one = @One(
                select="cn.edu.hznu.dao.IUserDao.findUserById",//查询方法
                    fetchType = FetchType.EAGER//开启懒加载(使用时才查询)
            ))
    })
    List<Account>findAll();

    @Select("select * from account where uid=#{uid}")
    @ResultMap("AccountMap")//采用上面设置的映射配置
    List<Account> findAccountByUid(Integer uid);
}

  IUserDao

package cn.edu.hznu.dao;

import cn.edu.hznu.doamin.User;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.mapping.FetchType;
import java.util.List;

/**
 * Created by wjj on 2020/4/1
 */
@CacheNamespace(blocking = true)//开启二级缓存,主配置文件中默认开启二级缓存
public interface IUserDao {
    /*
    * 查找所有用户,并显示所属账户
    * */
    @Select("select * from user")
    @Results(id="UserMap",value={
            @Result(id=true,property = "id",column = "id"),
            @Result(property = "username",column = "username"),
            @Result(property = "sex",column = "sex"),
            @Result(property = "address",column = "address"),
            @Result(property = "birthday",column = "birthday"),
            @Result(property = "accounts",column = "id",many = @Many(
                    select = "cn.edu.hznu.dao.IAccountDao.findAccountByUid",
                    fetchType = FetchType.LAZY
            ))
    })
    List<User>findAll();

    /*
    * 查找用户
    * */
    @Select("select * from user where id=#{id}")
    User findUserById(Integer id);
}

  

原文地址:https://www.cnblogs.com/wjune-0405/p/12616159.html