| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package main
-
- import (
- "fmt"
- "log"
- "testing"
-
- "git.x2erp.com/qdy/go-base/model/request"
- "git.x2erp.com/qdy/go-db/factory/http"
- )
-
- func TestQuery(t *testing.T) {
- // 记录总开始时间
- //totalStartTime := time.Now()
-
- // 1. 获取HTTP工厂实例
- httpFactory, err := http.GetHTTPFactory()
- if err != nil {
- t.Fatalf("Failed to get HTTP factory: %v", err)
- }
- fmt.Println("HTTP factory created successfully")
-
- // 7. 获取Doris工厂实例
- //dorisFactory1, err := doris.GetDorisFactory(httpFactory)
- if err != nil {
- t.Fatalf("Failed to get Doris factory: %v", err)
- }
- fmt.Println("Doris factory created successfully")
-
- // 获取Doris配置
- //cfg, err := config.GetConfig()
- if err != nil {
- t.Fatalf("failed to load config: %v", err)
- return
- }
-
- sql, queryParams := getSQLWithPaginationSQL(0, 10)
- // 准备查询请求
- queryRequest := request.QueryRequest{
- SQL: sql,
- PositionalParams: queryParams,
- WriterHeader: false,
- }
-
- httpClient := httpFactory.CreateClient()
- // 发送POST请求到 /api/query/csv 获取CSV格式数据
- resp, err := httpClient.PostWithAuth(
- "http://localhost:8080/api/query/csv/param/bills",
- queryRequest,
- "123", // Bearer Token
- nil,
- )
-
- if err != nil {
- csvData := string(resp.Body())
- log.Printf("查询失败:%v", err)
- log.Printf("csvData--err:%s", csvData)
-
- return
- }
-
- if resp.StatusCode() != 200 {
- log.Printf("\n 询请求失败, 状态码: %d", resp.StatusCode())
- }
-
- // 获取CSV数据
- csvData := string(resp.Body())
-
- log.Printf("\n csvData:%s", csvData)
-
- }
-
- // getSQLWithPagination 生成带分页的SQL语句(参数模式)
- // 返回SQL语句和参数映射
- func getSQLWithPaginationSQL(startRow, endRow int) (string, []interface{}) {
- sql := `SELECT
- CLOTHING_ID,
- CLOTHING_YEAR,
- CLOTHING_NAME
-
- FROM (
- SELECT a.*, ROWNUM as rn
- FROM (
- SELECT *
- FROM X6_STOCK_DEV.A3_CLOTHING
-
- ORDER BY CLOTHING_ID
- ) a
- WHERE ROWNUM <= :1
- )
- WHERE rn > :2`
-
- // 创建参数映射
- params := []interface{}{
- endRow,
- startRow - 1, // WHERE rn > :start_row 所以是startRow-1
- }
-
- return sql, params
- }
|