ureport2 数据源配置 三、Spring上下文中定义好的一个Bean来作为数据源 (SpringBean数据源配置) 四、定义好的内置数据源(内置数据源选择)
ureport2 数据源配置方式
ureport2 的数据源配置方式
一、三种数据源配置
- 直接连接数据库(数据源配置)
- Spring上下文中定义好的一个Bean来作为数据源 (SpringBean数据源配置)
- 定义好的内置数据源(内置数据源选择)
二、直接连接数据库(数据源配置)
注意:(在页面用数据源配置链接数据库注意,不要刷新浏览器,刷新之后链接会清空)
pom.xml,文件配置数据库链接(JDBC驱动包,数据库连接池的jar包)
测试成功,点击保存
数据源卡项会多一个新增加的demo
点击demo右键 添加数据集
编辑SQL语句,预览结果,点击确定
好了,数据源配置就是这样了
注意:(在页面用SpringBean数据源配置链接数据库注意,不要刷新浏览器,刷新之后链接会清空)
package com.bstek.ureport.test.demo; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.lang3.RandomUtils; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 声明一个类,相当于一个配置文件 bean → 注解@Component * 把普通pojo实例化到spring容器中,相当于配置文件中的<bean /> */ @Component public class TestBean { /** * 方法必须包含三个参数:String,String,Map * * @return 集合类型 ,包含字段:id,name,salary */ public List<Map<String, Object>> loadReportData(String dsName, String datasetName, Map<String, Object> parameters) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (int i = 0; i < 1000; i++) { // 模拟数据 Map<String, Object> m = new HashMap<String, Object>(); m.put("id", i); m.put("name", RandomStringUtils.random(10, true, false)); m.put("salary", RandomUtils.nextInt() + i); list.add(m); } return list; } /** * @return 对象类型 ,类型:com.bstek.ureport.test.demo.User */ public List<User> buildReport(String dsName, String datasetName, Map<String, Object> parameters) { List<User> list = new ArrayList<User>(); for (int i = 0; i < 1000; i++) { User m = new User(); m.setId(i); m.setName(RandomStringUtils.random(10, true, false)); m.setSalary(RandomUtils.nextInt() + i); list.add(m); } return list; } } |
package com.bstek.ureport.test.demo; import lombok.Data; @Data public class User { private int id; private String name; private int salary; } |
四、定义好的内置数据源(内置数据源选择)
@Component public class TestBuildinDatasource implements BuildinDatasource { @Autowired private DataSource dataSource; /** * @return 返回数据源名称 */ @Override public String name() { return "内置数据源DEMO"; } /** * @return 返回当前采用数据源的一个连接 */ @Override public Connection getConnection() { try { return dataSource.getConnection(); } catch (SQLException e) { throw new RuntimeException(e); } } public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } } |