Keine Beschreibung
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

my_post_query_test.go 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "testing"
  6. request "git.x2erp.com/qdy/go-base/model/request/dorisreq"
  7. "git.x2erp.com/qdy/go-db/factory/http"
  8. )
  9. func TestQuery(t *testing.T) {
  10. // 记录总开始时间
  11. //totalStartTime := time.Now()
  12. // 1. 获取HTTP工厂实例
  13. httpFactory, err := http.GetHTTPFactory()
  14. if err != nil {
  15. t.Fatalf("Failed to get HTTP factory: %v", err)
  16. }
  17. fmt.Println("HTTP factory created successfully")
  18. // 7. 获取Doris工厂实例
  19. //dorisFactory1, err := doris.GetDorisFactory(httpFactory)
  20. if err != nil {
  21. t.Fatalf("Failed to get Doris factory: %v", err)
  22. }
  23. fmt.Println("Doris factory created successfully")
  24. // 获取Doris配置
  25. //cfg, err := config.GetConfig()
  26. if err != nil {
  27. t.Fatalf("failed to load config: %v", err)
  28. return
  29. }
  30. sql, queryParams := getSQLWithPaginationSQL(0, 10)
  31. // 准备查询请求
  32. queryRequest := request.QueryRequest{
  33. SQL: sql,
  34. PositionalParams: queryParams,
  35. WriterHeader: false,
  36. }
  37. httpClient := httpFactory.CreateClient()
  38. // 发送POST请求到 /api/query/csv 获取CSV格式数据
  39. resp, err := httpClient.PostWithAuth(
  40. "http://localhost:8080/api/query/csv/param/bills1",
  41. queryRequest,
  42. "123", // Bearer Token
  43. nil,
  44. )
  45. if err != nil {
  46. csvData := string(resp.Body())
  47. log.Printf("查询失败:%v", err)
  48. log.Printf("csvData--err:%s", csvData)
  49. return
  50. }
  51. if resp.StatusCode() != 200 {
  52. log.Printf("\n 询请求失败, 状态码: %d", resp.StatusCode())
  53. }
  54. // 获取CSV数据
  55. csvData := string(resp.Body())
  56. log.Printf("\n csvData:%s", csvData)
  57. }
  58. // getSQLWithPagination 生成带分页的SQL语句(参数模式)
  59. // 返回SQL语句和参数映射
  60. func getSQLWithPaginationSQL(startRow, endRow int) (string, []interface{}) {
  61. sql := `SELECT
  62. CLOTHING_ID,
  63. CLOTHING_YEAR,
  64. CLOTHING_NAME
  65. FROM (
  66. SELECT a.*, ROWNUM as rn
  67. FROM (
  68. SELECT *
  69. FROM X6_STOCK_DEV.A3_CLOTHING
  70. ORDER BY CLOTHING_ID
  71. ) a
  72. WHERE ROWNUM <= :1
  73. )
  74. WHERE rn > :2`
  75. // 创建参数映射
  76. params := []interface{}{
  77. endRow,
  78. startRow - 1, // WHERE rn > :start_row 所以是startRow-1
  79. }
  80. return sql, params
  81. }