ureport2 数据源配置
ureport2 数据源配置方式
ureport2 的数据源配置方式
一、三种数据源配置
- 直接连接数据库(数据源配置)
- Spring上下文中定义好的一个Bean来作为数据源 (SpringBean数据源配置)
- 定义好的内置数据源(内置数据源选择)
二、直接连接数据库(数据源配置)
注意:(在页面用数据源配置链接数据库注意,不要刷新浏览器,刷新之后链接会清空)
pom.xml,文件配置数据库链接(JDBC驱动包,数据库连接池的jar包)
测试成功,点击保存
数据源卡项会多一个新增加的demo
点击demo右键 添加数据集
编辑SQL语句,预览结果,点击确定
好了,数据源配置就是这样了
三、Spring上下文中定义好的一个Bean来作为数据源 (SpringBean数据源配置)
注意:(在页面用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 id="" class=""/> */ @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; }
} |