fastmybatis 2.3.2 发布,mybatis 开发利器

fastmybatis 2.3.2 发布,本次更新内容如下:

  • 支持查询列表并将结果转换成树结构。

有一张菜单表,具备父子关系

CREATE TABLE `menu` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(64) NOT NULL COMMENT '菜单名称',
`parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '父节点',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='菜单表';

插入数据:

INSERT INTO `menu` (`id`, `name`, `parent_id`) VALUES (1, '水果', 0);
INSERT INTO `menu` (`id`, `name`, `parent_id`) VALUES (2, '苹果', 1);
INSERT INTO `menu` (`id`, `name`, `parent_id`) VALUES (3, '香蕉', 1);
INSERT INTO `menu` (`id`, `name`, `parent_id`) VALUES (4, '数码产品', 0);
INSERT INTO `menu` (`id`, `name`, `parent_id`) VALUES (5, '手机', 4);
INSERT INTO `menu` (`id`, `name`, `parent_id`) VALUES (6, '电脑', 4);

parent_id=0表示没有父节点,即自己就是父节点

实体类

public class Menu implements TreeNode<Menu, Integer> {

     private Integer id;
     private String name;
     // 父节点id
     private Integer parentId;
     // 子节点
     private List<Menu> children;

     @Override
     public Integer takeId() {
         return getId();
     }

     @Override
     public Integer takeParentId() {
         return getParentId();
     }

     @Override
     public void setChildren(List<Menu> children) {
         this.children = children;
     }

     getter setter...
}

查询

// 查询出来的结果已经具备父子关系
List<Menu> treeData = mapper.listTreeData(query, 0);
System.out.println(JSON.toJSONString(treeData, SerializerFeature.PrettyFormat));

打印结果:

[
	{
		"children":[
			{
				"children":[],
				"id":2,
				"name":"苹果",
				"parentId":1
			},
			{
				"children":[],
				"id":3,
				"name":"香蕉",
				"parentId":1
			}
		],
		"id":1,
		"name":"水果",
		"parentId":0
	}
]

改变返回字段

public static class MenuDTO implements TreeNode<MenuDTO, Integer> {

        @JSONField(name = "value")
        private Integer id;

        @JSONField(name = "label")
        private String name;

        @JSONField(name = "pid")
        private Integer parentId;

        private List<MenuDTO> children;

}
 List<MenuDTO> treeData = mapper.listTreeData(new Query(), 0, MenuDTO::new);
 System.out.println(JSON.toJSONString(treeData, SerializerFeature.PrettyFormat));

打印:

[
	{
		"items":[
			{
				"items":[],
				"label":"苹果",
				"pid":1,
				"value":2
			},
			{
				"items":[],
				"label":"香蕉",
				"pid":1,
				"value":3
			}
		],
		"label":"水果",
		"pid":0,
		"value":1
	},
	{
		"items":[
			{
				"items":[],
				"label":"手机",
				"pid":4,
				"value":5
			},
			{
				"items":[],
				"label":"电脑",
				"pid":4,
				"value":6
			}
		],
		"label":"数码产品",
		"pid":0,
		"value":4
	}
]

关于 fastmybatis

fastmybatis 是一个 mybatis 开发框架,其宗旨为:简单、快速、有效。

  • 零配置快速上手,无需依赖 Spring
  • 无需编写 xml 文件即可完成增删改查操作
  • 支持 mysql、sqlserver、oracle、postgresql、sqlite
  • 支持自定义 sql,对于基本的增删改查不需要写 SQL,对于其它特殊 SQL(如统计 SQL)可写在 xml 中
  • 支持与 spring-boot 集成,依赖 starter 即可
  • 支持插件编写
  • 支持 ActiveRecord 模式
  • 支持多租户
  • 提供通用 Service
  • API 丰富,多达 40 + 方法,满足日常开发需求。
  • 轻量级,无侵入性,是官方 mybatis 的一种扩展

 

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/201684

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。