Mybatis 对 Mysql 中 text 类型的特殊处理

  • 昨天晚上在做 cms 的 crud 的时候遇到的问题,编辑的时候不回显内容,然后 f12 看了下响应的 json 里面 content 也为 null,然后去 service 里面把那个 pojo 加了 toString 把几条数据直接打印出来 因为用了分页然后打印出来的也并不是数据

(下次再来探究分页插件) 然后注释掉在打印发现还是没有然后我试了下单独查询,根据主键查询查出来的居然用有!!!这就很奇怪了。我当时就以为是 byexample 的 mapper 有问题 哈哈哈~~ 其实还是自己框架学的不好的问题

public EasyUIJsonResult listContent(long categoryId,int page,int rows) {
EasyUIJsonResult result=new EasyUIJsonResult();

//测试过程中发现 PageHelper 的一些问题 等下再来研究
//PageHelper.startPage(page, rows);
TbContentExample example =new TbContentExample();
example.createCriteria().andCategoryIdEqualTo(categoryId);
List<TbContent> contents = dao.selectByExample(example);
PageInfo<TbContent> info=new PageInfo<>(contents);

//加上 PageHelper 后这里打印出来的就不是 contents 对象了就是 Page 对象
//而且查出来的数据里面 content 为 null (数据库中有 猜想可能是逆向工程有问题);
System.out.println(contents);

//测试下单独查询 主键查询没问题 取的到 content
System.out.println(dao.selectByPrimaryKey((long)42));

//单独测试下只查一个 也没有
TbContentExample example2 =new TbContentExample();
Criteria criteria2 = example2.createCriteria();
criteria2.andCategoryIdEqualTo((long)90);
System.out.println(dao.selectByExample(example2 ));

result.setTotal(info.getTotal());
result.setRows(contents);
return result;
}
  • 然后就面向百度了一波,还真就查到了遇到跟我一样的问题 同道中人
    selectByExampleWithBLOBs 用这个方法就可以了 看名字就知道更这个有关哈哈哈
    然后就愉快的解决了!image
  • 不仅仅是 select update 也有这个方法
    public interface TbContentMapper {
    int countByExample(TbContentExample example);

    int deleteByExample(TbContentExample example);

    int deleteByPrimaryKey(Long id);

    int insert(TbContent record);

    int insertSelective(TbContent record);

    List<TbContent> selectByExampleWithBLOBs(TbContentExample example);

    List<TbContent> selectByExample(TbContentExample example);

    TbContent selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") TbContent record, @Param("example") TbContentExample example);

    int updateByExampleWithBLOBs(@Param("record") TbContent record, @Param("example") TbContentExample example);

    int updateByExample(@Param("record") TbContent record, @Param("example") TbContentExample example);

    int updateByPrimaryKeySelective(TbContent record);

    int updateByPrimaryKeyWithBLOBs(TbContent record);

    int updateByPrimaryKey(TbContent record);
    }