ureport2学习笔记一:springboot2集成ureport2 ,使用内置方式配置数据源,并解决配置数据时的碰到的问题

UReport2是一款纯Java的高性能报表引擎。 其优点在于:是开源的,基于Apache-2.0开源协议;其次,在项目中直接集成网页端报表设计器,灵活、方便、易维护和管理;另外,可以实现任意复杂的中国式报表。

步骤一:新建一个springboot2的Maven工程项目,并导入UReport2的依赖。配置如下:
   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
     <!--阿里数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
      <!--ureport-->
        <dependency>
            <groupId>com.syyai.spring.boot</groupId>
            <artifactId>ureport-spring-boot-starter</artifactId>
            <version>2.2.9</version>
        </dependency>
步骤二:创建UReport配置文件UreportConfig.java

@ImportResource("classpath:ureport-console-context.xml")//不加项目能够启动但是会导致加载数据源报错或加载不了
@Configuration
public class UreportConfig implements BuildinDatasource {
    private Logger log = LoggerFactory.getLogger(UreportConfig.class);

    @Resource
    DataSource dataSource;

    @Bean //定义ureport的启动servlet
    @SuppressWarnings("unchecked")
    public ServletRegistrationBean ureportServlet(){
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new UReportServlet());
        servletRegistrationBean.addUrlMappings("/ureport/*");
        return servletRegistrationBean;
    }
    @Override
    public String name() {
        return "myUReportDatasource";
    }

    @Override
    public Connection getConnection() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            log.error("Ureport 数据源 获取连接失败!");
            e.printStackTrace();
        }
        return null;
    }
}

至此 springboot2集成ureport2 初步完成,但是在配置数据源时还有问题需要解决。
问题一:此时有可能项目启动不了,并报错Configuration problem: Failed to import bean definitions from URL location [classpath:ureport-core-context.xml]

解决办法:在springboot配置文件application.yml或application.properties 中加上配置
spring.main.allow-bean-definition-overriding=true

问题二:启动项目,配置使用数据源时,加载不了数据 同时后台报错 com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone

解决办法:在数据源url后加上&serverTimezone=UTC配置

 

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在SpringBoot配置ureport内置数据源,可以按照以下步骤进行: 1. 在pom.xml文件添加ureport的依赖: ``` <dependency> <groupId>com.bstek.ureport</groupId> <artifactId>ureport2-core</artifactId> <version>2.8.6</version> </dependency> ``` 2. 在application.properties文件添加ureport配置: ``` ureport.enabled=true ureport.fileStoreDir=file:${user.home}/ureport/ ureport.reportHome=file:${user.home}/ureport/ ureport.ds.provider=com.bstek.ureport.provider.report.DataSourceProvider ureport.ds.provider.class=com.bstek.ureport.provider.report.FileJsonDataSourceProvider ``` 3. 在resources目录下创建ureport文件夹,并在该文件夹下创建dataSources.json文件,配置数据源信息: ``` { "datasources": [ { "name": "test", "type": "jdbc", "driverClassName": "com.mysql.jdbc.Driver", "url": "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false", "username": "root", "password": "123456" } ] } ``` 其,name为数据源名称,type为数据源类型,driverClassName为驱动类名,url为数据库连接地址,username为数据库用户名,password为数据库密码。 4. 在代码使用数据源: ``` @Autowired private ReportManager reportManager; public void test() { Map<String, Object> parameters = new HashMap<>(); parameters.put("test", "test"); ReportFile reportFile = reportManager.loadReportFile("classpath:reports/test.ureport.xml"); Report report = reportFile.parse(); HtmlReport htmlReport = new HtmlReport(report, parameters); String content = htmlReport.getContent(); System.out.println(content); } ``` 其,classpath:reports/test.ureport.xml为报表文件路径,test为数据源名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值