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; }
} |