ureport2 数据源配置

 ureport2 数据源配置方式

 ureport2 的数据源配置方式

 

一、三种数据源配置

 

 

  1. 直接连接数据库(数据源配置)
  2. Spring上下文中定义好的一个Bean来作为数据源 (SpringBean数据源配置)
  3. 定义好的内置数据源(内置数据源选择)

 

二、直接连接数据库(数据源配置)

注意:(在页面用数据源配置链接数据库注意,不要刷新浏览器,刷新之后链接会清空)

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 {

    /**

     * 方法必须包含三个参数:StringStringMap

     *

     * @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;

    }

 

}

posted @ 2018-08-27 16:22  Seven-7-  阅读(12111)  评论(4编辑  收藏  举报