mybatis 注解开发

    技术2022-07-17  59

    mysql注解开发

    一、实体类属性别名设置二、一对一查询三、一对多四、二级缓存

    一、实体类属性别名设置

    /** * 查询全部用户 * @return */ @Select("SELECT *FROM user") @Results(id="UserMap", value = {@Result(id = true, property = "userid", column = "id"), @Result( property = "username", column = "username"), @Result( property = "userbirthday", column = "birthday"), @Result( property = "usersex", column = "sex"), @Result( property = "useraddress", column = "address") } ) List<User> findAll();

    使用:

    /** * 通过username做模糊查询 * @param username * @return */ @Select("SELECT * FROM user WHERE username like #{username}") @ResultMap("UserMap") List<User> findByName(String username);

    二、一对一查询

    @Select("SELECT * FROM account") @Results(id="accountMap",value = { @Result(id = true,property = "id",column = "id"), @Result(property = "uid",column = "uid"), @Result(property = "money",column = "money"), @Result(property = "user",column = "uid",one=@One(select = "com.ect.dao.IUserDao.findById",fetchType = FetchType.EAGER)) }) List<Account> findAll();

    三、一对多

    /** * 查询全部用户 * @return */ @Select("SELECT *FROM user") @Results(id="UserMap", value = {@Result(id = true, property = "userid", column = "id"), @Result( property = "username", column = "username"), @Result( property = "userbirthday", column = "birthday"), @Result( property = "usersex", column = "sex"), @Result( property = "useraddress", column = "address"), @Result(property = "accounts",column = "id",many = @Many(select = "com.ect.dao.IAccoutn.findByUid",fetchType = FetchType.LAZY)) } ) List<User> findAll();

    四、二级缓存

    Processed: 0.010, SQL: 9