mybatis-plus实体json对象的使用
1、sql
-
-
create table menu_test
-
(
-
id bigint auto_increment comment '主键' primary key,
-
menu_data json null comment '数据'
-
) comment '测试菜单表';
2、对象实体
-
//autoResultMap = true 自动指定ResultMap
-
-
-
-
-
-
public class MenuTestPO extends Model<MenuTestPO> implements Serializable {
-
-
private Long id;
-
//指定json解析类型:typeHandler = FastjsonTypeHandler.class
-
//PS:此处指定只对baseMapper中的方法有效,XML中的方法需要在xml中重新指定typeHandler
-
-
private List<Menu> menuData;
-
}
-
-
-
-
-
-
public class Menu {
-
-
private String menuName;
-
-
private String menuCode;
-
-
private Integer enable;
-
-
private Integer sort;
-
-
private String routeKey;
-
-
private List<Menu> subList;
-
-
public Menu(){
-
}
-
-
public Menu(String menuCode,Integer enable,List<Menu> subList){
-
this.menuCode = menuCode;
-
this.enable = enable;
-
this.subList = subList;
-
}
-
-
public Menu(String menuName,String menuCode,Integer enable,Integer sort,String routeKey,List<Menu> subList){
-
this.menuName = menuName;
-
this.menuCode = menuCode;
-
this.enable = enable;
-
this.sort = sort;
-
this.routeKey = routeKey;
-
this.subList = CollectionUtil.isNotEmpty(subList) ? subList : Collections.emptyList();
-
}
-
-
public Menu(String menuCode,Integer enable) {
-
this.menuCode = menuCode;
-
this.enable = enable;
-
}
-
}
3、xml
-
-
-
<mapper namespace="com.axzo.bidding.service.infrastructure.mapper.MenuTestMapper">
-
-
<resultMap id="menuTest" type="com.axzo.bidding.service.infrastructure.persistence.MenuTestPO">
-
<id column="id" property="id" ></id>
-
<!-- 指定解析类型 typeHandler : FastjsonTypeHandler -->
-
<result column="menu_data" property="menuData" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"></result>
-
</resultMap>
-
<select id="findById" resultMap="menuTest">
-
SELECT * FROM menu_test WHERE id = #{id}
-
</select>
-
</mapper>
4、调用方法
-
public interface MenuTestMapper extends BaseMapper<MenuTestPO> {
-
//PS:BaseMapper中自带的方法会被自动解析成json结构,自定义方法不行,需要在对应的xml中指定属性的解析类型
-
MenuTestPO findById(; Long id)
-
}
-
-
public interface MenuTestRepository {
-
-
void save(MenuTestPO po);
-
-
MenuTestPO findByid(Long id);
-
}
-
-
-
-
-
public class MenuTestRepositoryImpl implements MenuTestRepository {
-
-
private final MenuTestMapper menuTestMapper;
-
-
-
public void save(MenuTestPO po) {
-
//basemapper自带的方法
-
menuTestMapper.insert(po);
-
}
-
-
-
public MenuTestPO findByid(Long id) {
-
//自定义的方法
-
return menuTestMapper.findById(id);
-
}
-
}
这篇好文章是转载于:编程之路
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 编程之路
- 本文地址: /boutique/detail/tanhfkgjkj
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13