# JavaBean数据集 *此文仅给开发看* 支持版本`Version 1.3.2+` [TOC] ## **1.配置,添加数据集** 点击“数据集管理 ->javaBean数据集”,即可计入javaBean数据集添加管理界面,如图8.32; ![](https://img.kancloud.cn/a4/d6/a4d6bc45b20c58946573d71e2017294a_316x247.png) :-: 图8.31 ![](https://img.kancloud.cn/fc/9d/fc9dd6667a445715b829d7b657cae4cb_1890x454.png) :-: 图8.32 | 类型 | 值| | --- | --- | | spring (新的已改成spring-key) | 后台java类添加注解@Component,对应的值填写注解的value | | reference(新的已改成java-class)| 后台java类的类路径 | ## **2.配置,自定义参数** ![](https://img.kancloud.cn/ef/7a/ef7ac2015b05959664581c3b49b187bd_1666x503.png) ``` javabean数据集的参数需要自己添加,并且设置默认值,预览的时候可以在预览地址后拼接参数替换默认值 ``` ## **3.java类的定义:实现接口`IDataSetFactory `** ~~~ import org.jeecg.modules.jmreport.desreport.model.JmPage; import org.jeecg.modules.jmreport.api.data.IDataSetFactory; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Component("testRpSpringBean") public class TestRpSpringBean implements IDataSetFactory { /** * 不分页时返回list * @param param 参数 包括浏览器地址栏 和 查询条件 * @return */ @Override public List<Map<String, Object>> createData(Map<String, Object> param) { List<Map<String, Object>> ls = new ArrayList<>(); Map<String, Object> obj2 = new HashMap<>(); obj2.put("name", "张三"); obj2.put("age", "14"); ls.add(obj2); Map<String, Object> obj3 = new HashMap<>(); obj3.put("name", "李四"); obj3.put("age", "15"); ls.add(obj3); Map<String, Object> obj4 = new HashMap<>(); obj4.put("name", "王五"); obj4.put("age", "16"); ls.add(obj4); return ls; } /** * 分页时返回 JmPage 并且参数param里会传入pageNo, pageSize * @param param 参数 包括浏览器地址栏 和 查询条件 * @return */ @Override public JmPage createPageData(Map<String, Object> param) { JmPage page = new JmPage(); List<Map<String, Object>> ls = new ArrayList<>(); int pageSize = Integer.parseInt(param.get("pageSize").toString()); Map<String, Object> obj2 = new HashMap<>(); obj2.put("name", "张三"); obj2.put("age", "14"); obj2.put("sex", "1"); ls.add(obj2); Map<String, Object> obj3 = new HashMap<>(); obj3.put("name", "李四"); obj3.put("age", "15"); obj2.put("sex", "2"); ls.add(obj3); Map<String, Object> obj4 = new HashMap<>(); obj4.put("name", "王五"); obj4.put("age", "16"); obj2.put("sex", "2"); ls.add(obj4); //以下参数均需设置 page.setPageSize(pageSize); page.setTotal(20); page.setRecords(ls); return page; } } ~~~ 注:上述两个方法`createPageData`(分页用),`createData`(不分页用)都会接收一个map参数`param`,该参数包含的值有两种,一种是查询条件传递的值,一种是添加数据集时配置的参数。 ## **4. 如何在类中调用service** 对于spring bean 即添加了@Component注解的类,可以通过`@Autowired`注解引入service 对于没有添加spring注解的类,可以调用`JimuSpringContextUtils.getBean(String name)`方法获取具体的service ## **5.打印全部** param中会传入一个参数 `printAll`,用户需要根据此参数判断获取打印需要的所有数据。