ureport2使用bean数据源设计数据
三种数据源配置
一、直接连接数据库(数据源配置)
注意:(在页面用数据源配置链接数据库注意,不要刷新浏览器,刷新之后链接会清空)
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;
}
}
留下小爱心再走吧!!!