Browse Source

动态支持MySQL/Oracle

张泳健 5 years ago
parent
commit
592b09f89f

+ 1 - 1
config/application-oracle.yml View File

3
   user: C##FMMP
3
   user: C##FMMP
4
   password: vcare~1(^_^)
4
   password: vcare~1(^_^)
5
 export:
5
 export:
6
-  folder: ./
6
+  folder: ./logs/

+ 2 - 2
config/application.yml View File

1
 profile:
1
 profile:
2
-#  active: mysql
3
-   active: oracle
2
+  active: mysql
3
+#   active: oracle

+ 1 - 2
src/main/java/com/vcarecity/cvs/service/ResultHandlerService.java View File

13
      * ins
13
      * ins
14
      *
14
      *
15
      * @param dataList
15
      * @param dataList
16
-     * @param cls
17
      * @throws Exception
16
      * @throws Exception
18
      */
17
      */
19
-    <T> void resultHandler(List<T> dataList, Class<T> cls) throws Exception;
18
+    <T> void resultHandler(List<T> dataList) throws Exception;
20
 
19
 
21
 
20
 
22
 }
21
 }

+ 7 - 3
src/main/java/com/vcarecity/cvs/service/impl/CSVResultHandlerServiceImpl.java View File

78
     }
78
     }
79
 
79
 
80
     @Override
80
     @Override
81
-    public <T> void resultHandler(List<T> dataList, Class<T> cls) throws Exception {
81
+    public <T> void resultHandler(List<T> dataList) throws Exception {
82
         checkFile();
82
         checkFile();
83
 
83
 
84
         logger.debug("start write to csv file size = {}", dataList.size());
84
         logger.debug("start write to csv file size = {}", dataList.size());
85
 
85
 
86
         long startTime = System.currentTimeMillis();
86
         long startTime = System.currentTimeMillis();
87
 
87
 
88
+
89
+        Class<?> cls = Object.class;
90
+
88
         for (T t : dataList) {
91
         for (T t : dataList) {
92
+            cls = t.getClass();
89
             Object[] row;
93
             Object[] row;
90
-
91
             if (t.getClass().isArray()) {
94
             if (t.getClass().isArray()) {
92
                 row = (Object[]) t;
95
                 row = (Object[]) t;
93
             } else if (List.class.isAssignableFrom(t.getClass())) {
96
             } else if (List.class.isAssignableFrom(t.getClass())) {
95
                 row = ((List) t).toArray();
98
                 row = ((List) t).toArray();
96
             } else {
99
             } else {
97
                 // auto mapper
100
                 // auto mapper
98
-                row = resultMapper(t, cls);
101
+                //noinspection unchecked
102
+                row = resultMapper(t, (Class<T>) t.getClass());
99
             }
103
             }
100
             Object[] handlerRow = toCsvContent(row);
104
             Object[] handlerRow = toCsvContent(row);
101
             writer.printRecord(handlerRow);
105
             writer.printRecord(handlerRow);

+ 1 - 1
src/main/java/com/vcarecity/cvs/service/impl/MySQLResultHandlerServiceImpl.java View File

29
 
29
 
30
 
30
 
31
     @Override
31
     @Override
32
-    public <T> void resultHandler(List<T> dataList, Class<T> cls) throws Exception {
32
+    public <T> void resultHandler(List<T> dataList) throws Exception {
33
         logger.debug("start write to mysql size = {}, on = {}", dataList.size(), LocalDateTime.now());
33
         logger.debug("start write to mysql size = {}, on = {}", dataList.size(), LocalDateTime.now());
34
         long startTime = System.currentTimeMillis();
34
         long startTime = System.currentTimeMillis();
35
         final Connection connection = dataSource.getConnection();
35
         final Connection connection = dataSource.getConnection();

+ 1 - 1
src/main/java/com/vcarecity/cvs/starter/SQLStarter.java View File

59
 
59
 
60
         do {
60
         do {
61
             List<T> result = queryService.queryByPage(table, page, this.pageCount, cls);
61
             List<T> result = queryService.queryByPage(table, page, this.pageCount, cls);
62
-            resultHandler.resultHandler(result, cls);
62
+            resultHandler.resultHandler(result);
63
             currentSize = result.size();
63
             currentSize = result.size();
64
 
64
 
65
             page++;
65
             page++;