讲师回答 / 老猿
我试验了一下,使用selectMapsPage后确实是这样。你还有一个办法,你想要每页的记录是List泛型是Map的是吗?你可以使用selectPage方法,返回的对象是IPage类型的对象,你使用IPage接口的 default <R> IPage<R> convert(Function<? super T, ? extends R> mapper)这个方法转换一下。
2020-02-10
讲师回答 / 老猿
别的地方如果想用等于也是可以的,就是写法要不一样。在实体中加的这个condition。只是实体作为条件构造器的构造函数的参数的时候才会生效,其他地方你可以把name等于直接用条件构造器构造,通过构造函数创建条件构造器时不传实体。
2020-02-09
讲师回答 / 老猿
有点不太明白,你这个sql语句用原生的mybatis就可以实现,关键字你写错,是like,不是liker。还有like你模糊查询不用通配符吗?不用通配符那是精确匹配啊。where 后面的1=1不用写,原生的<where>标签就可以解决这个问题。 如果用MP的条件构造器实现,大概是这样,我没加那个1=1,应为没有必要:<...code...>
2020-02-08
讲师回答 / 老猿
你好,同学,你说的转化是保存到数据库中,还是想转换成json数据给前端呀。我试验了一下,保存数据是没有问题的,实体类中如果字段为LocalDate。如果你使用的是mysql数据库,可以对应的表字段类型为date,如果你使用的是datetime,那么保存的日期正常,时间是00:00:00。如果是要将pojo对象转换成json串的话,不同的框架处理的方式有些不一样,fastjson和jackson2都有格式化的注解,你试试是否可行,如果还不能转换,可自定义该类型的转换方法,也是不同框架的实现方式不一样。
2020-01-22
已采纳回答 / 老猿
MP自带的CRUD操作是针对单表操作的,如果要操作多表,可以写自定义sql。给你举个使用条件构造器的多表sql例子,可以写在xml中或注解中,下面的是用xml的写法:123<select id="mySelectList" resultType="User"> select u.*,r.role_name from user u inner join role r on u.role_id = r.role_id ${ew.customSqlSegment}</select&g...
2020-01-19
已采纳回答 / 老猿
我再重发一遍,刚才在你下面留言,不知道为啥被截断了。这不是子查询,MP应该是解决不了这个问题,我的办法就是使用OrderMaster的Mapper先查询OrderMaster。然后用OrderDetail的Mapper根据主表的主键查询从表数据,最后把从表数据赋值到OrderMaster对象上。就是两次查询。 还有个办法就是用mybatis原生的resultMap中配置collection的这种方式。
2020-01-17
已采纳回答 / 老猿
LambdaQueryWrapper可以在service中使用,前提是你的service要继承mp的通用service,我在最后一节中有讲LambdaQueryWrapper怎么用。直接用你的service对象.lambdaQuery()然后根据需求一顿链式操作即可。而使用LambdaUpdateChainWrapper,是直接你的service对象.lambdaUpdate()然后也是根据需求一顿链式调用。 你写的那种new一个LambdaUpdateChainWrapper...
2020-01-16
讲师回答 / 老猿
同学你好,这个问题可能没有标准答案,我说说我的看法,使用MP,你的service可以继承mp的通用service。在通用service中已经把操作本实体的mapper给你注入进来了。你可以在service中实现一个根据年龄查询用户的方法。如果其他service要用,有一种方式是把这个service注入到另一个service中,直接调用,但这种使用方式有争议,有的单位不让这么干,因为同层依赖了。 方式二,你这个查询可以写在Mapper中,就是原生的Mybatis怎么写,你就怎么写...
2020-01-16