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);
}

浙公网安备 33010602011771号