個人學習系列 - Spring Boot 整合 UReport2
工作中總是需要生成各種各樣的報表,麻煩的很。最近發現了一個UReport2,據說可以實現複雜的中國式報表,有點小激動。。。
1. 新建springboot專案
1.1 pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.bstek.ureport</groupId>
<artifactId>ureport2-console</artifactId>
<version>2.2.9</version>
</dependency>
1.2 application.yml
server:
port: 8888
# 資料庫連結 資料來源配置
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://IP地址:3306/資料庫名稱?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&serverTimezone=GMT%2B8
username: 資料庫使用者名稱
password: 資料庫密碼
1.3 編寫config程式碼類,用於配置UReport2
/**
* springboot實體類配置
* context.xml為UReport2的配置檔案
* @author zhouzhaodong
*/
@ImportResource("classpath:context.xml")
@Configuration
public class BeanConfig {
@Bean
public ServletRegistrationBean<Servlet> ureport2Servlet() {
return new ServletRegistrationBean<>(new UReportServlet(), "/ureport/*");
}
}
1.4 新建UReport2的配置檔案context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<import resource="classpath:ureport-console-context.xml"/>
<!-- 引入配置檔案 -->
<bean id="propertyConfigurer" parent="ureport.props">
<property name="location" value="classpath:context.properties"/>
</bean>
</beans>
1.5 新建context.properties
這裡我主要是在這裡定義UReport2中提供的預設基於檔案系統的報表儲存目錄:
# 用於定義UReport2中提供的預設基於檔案系統的報表儲存目錄
ureport.fileStoreDir=src/main/resources/ureportfiles
這裡需要注意的是,我們設定在ureportfiles資料夾下面儲存報表,這個資料夾需要我們手動建立,否則無法儲存。。。
1.6 這裡需要定義內建資料來源
這裡需要注意的是資料來源連線方式有三種:
- 直接連線資料庫,就是在專案的classpath中新增好相應資料庫的驅動Jar包後,在彈出的視窗中配置資料來源連線資訊即可,如下圖所示:
- Spring Bean,選擇Spring上下文中定義好的一個Bean來作為資料來源,點選圖示,在彈出的視窗中輸入資料來源名稱及要採用的Bean的ID,如下圖所示:
儲存後,就可以在這個資料來源下新增具體的資料集,新增方法就是在這個資料來源下右鍵,在彈出的選單中選擇新增資料集,在彈出的視窗中定義資料集名稱、對應的方法名以及返回物件型別,如下圖所示:
- 通過實現com.bstek.ureport.definition.datasource.BuildinDatasource介面提供的內建資料來源:
之前已經在application.yml裡面配置資料庫資訊了。
/**
* Ureport 資料來源
*
* @author zhouzhaodong
*/
@Component
public class UreportDataSource implements BuildinDatasource {
private static final String NAME = "MyDataSource";
private final Logger log = LoggerFactory.getLogger(UreportDataSource.class);
@Resource
private DataSource dataSource;
/**
* 資料來源名稱
**/
@Override
public String name() {
return NAME;
}
/**
* 獲取連線
**/
@Override
public Connection getConnection() {
try {
return dataSource.getConnection();
} catch (SQLException e) {
log.error("Ureport 資料來源 獲取連線失敗!");
e.printStackTrace();
}
return null;
}
}
2. 測試
2.1 啟動專案
控制檯列印如下資訊代表成功:
2.2 訪問http://localhost:8888/ureport/designer
訪問地址根據配置檔案得到的:
2.3 設定資料來源
點選確定後資料來源就搞完了,當然那些複雜的資料查詢自己搞去吧!
2.4 設定報表
2.5 儲存報表
2.6 各種型別下載連結
個人部落格地址
GitHub原始碼地址
https://github.com/zhouzhaodong/springboot/tree/master/spring-boot-ureport2
相關文章
- Spring boot學習(三) Spring boot整合mybatisSpring BootMyBatis
- Spring boot學習(四)Spring boot整合DruidSpring BootUI
- Spring boot學習(五)Spring boot整合Mybatis Generator以及PageHelperSpring BootMyBatis
- 個人學習系列 - SpringBoot整合RabbitMQSpring BootMQ
- 從零開始學Spring Boot系列-整合MySQLSpring BootMySql
- 從零開始學Spring Boot系列-整合mybatisSpring BootMyBatis
- 從零開始學Spring Boot系列-整合KafkaSpring BootKafka
- Spring Boot系列十九 Spring boot整合 swaggerSpring BootSwagger
- Spring Boot系列(三):Spring Boot整合Mybatis原始碼解析Spring BootMyBatis原始碼
- Spring Boot系列筆記--整合RedisSpring Boot筆記Redis
- 從零開始學Spring Boot系列-整合MyBatis-PlusSpring BootMyBatis
- 個人學習系列 - Spring Boot 配合 Redis 實現簡單的釋出訂閱功能Spring BootRedis
- Spring-boot整合AOP及AOP相關學習Springboot
- 學習Spring Boot:(六) 整合Swagger2Spring BootSwagger
- spring boot學習Spring Boot
- Spring Boot 學習Spring Boot
- Spring Boot學習6:Spring Boot JDBCSpring BootJDBC
- Spring Boot學習3:web篇(中)-Spring boot Rest學習Spring BootWebREST
- Spring Boot學習(一)——Spring Boot介紹Spring Boot
- Spring Boot系列十七 Spring Boot 整合 websocket,使用RabbitMQ做為訊息代理Spring BootWebMQ
- 小代學Spring Boot之整合MyBatisSpring BootMyBatis
- Github 上 Star 最多的個人 Spring Boot 開源學習專案GithubSpring Boot
- Spring Boot 學習系列(11)—tomcat引數配置建Spring BootTomcat
- Spring Boot學習4:web篇(下)-Spring boot (Servlet,Jsp)學習Spring BootWebServletJS
- Spring Boot系列十六 WebSocket簡介和spring boot整合簡單訊息代理Spring BootWeb
- Spring boot學習(二) Spring boot基礎配置Spring Boot
- Spring boot學習(一)開啟Spring boot之旅Spring Boot
- Spring Boot學習筆記:Spring Boot核心配置Spring Boot筆記
- Spring Boot學習5:spring-boot web容器Spring BootWeb
- Spring Boot 2.0(八):Spring Boot 整合 MemcachedSpring Boot
- Spring Boot(十八):使用 Spring Boot 整合 FastDFSSpring BootAST
- Spring Boot整合rabbitmqSpring BootMQ
- Spring Boot 整合 rabbitmqSpring BootMQ
- Spring Boot 整合 elasticsearchSpring BootElasticsearch
- Spring Boot 整合 dockerSpring BootDocker
- Spring Boot 整合 elkSpring Boot
- Spring Boot 整合 ApolloSpring Boot
- Spring Boot整合RedisSpring BootRedis