瀏覽代碼

添加数据库连接,和测试接口

DESKTOP-6LTVLN7\Liumouren 3 月之前
父節點
當前提交
06740a24ef

+ 1 - 1
src/main/java/com/skyversation/poiaddr/config/AuthInterceptor.java

@@ -43,7 +43,7 @@ public class AuthInterceptor implements HandlerInterceptor {
                 response.addHeader("Set-Cookie", builder.toString());
             }
         }
-        if(request.getRequestURI().contains("/poiApi/poiAddress/test")){
+        if(request.getRequestURI().contains("/poiApi/poiAddress/test") || request.getRequestURI().contains("/poiApi/poiAddress/runSql")){
             return true;
         }
         String token = request.getHeader("token");

+ 65 - 0
src/main/java/com/skyversation/poiaddr/config/DbConnection.java

@@ -0,0 +1,65 @@
+package com.skyversation.poiaddr.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.sql.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class DbConnection {
+    private static DbConnection dbConnection;
+
+    public static DbConnection getInstance() {
+        if (dbConnection == null) {
+            return new DbConnection();
+        }
+        return dbConnection;
+    }
+
+    private Statement stmt;
+    @Value("${app.db.username}")
+    private String db_user_name;
+    @Value("${app.db.password}")
+    private String db_password;
+
+    @PostConstruct
+    public void initDbConnection() throws SQLException {
+//      加载驱动
+        System.out.println("加载驱动!");
+        dbConnection = this;
+        try {
+            Class.forName("io.transwarp.jdbc.QuarkDriver");
+        } catch (Exception e) {
+            System.err.println("加载驱动异常:" + e);
+            System.exit(1);
+        }
+        String jdbcURL = "jdbc:transwarp2://172.30.75.126:31768/dws";
+        System.out.println("配置文件中的数据库用户名:" + db_user_name + ";密码:" + db_password);
+        String user = db_user_name;
+        String password = db_password;
+        Connection conn = DriverManager.getConnection(jdbcURL, user, password);
+        stmt = conn.createStatement();
+
+    }
+
+    public List<Map<String, Object>> runSqlStr(String sqlStr) throws SQLException {
+        ResultSet rs = stmt.executeQuery(sqlStr);
+        ResultSetMetaData rsmd = rs.getMetaData();
+        int size = rsmd.getColumnCount();
+        List<Map<String, Object>> requestData = new ArrayList<>();
+        while (rs.next()) {
+            Map<String, Object> dataItem = new HashMap<>();
+            for (int i = 0; i < size; i++) {
+                dataItem.put(rsmd.getColumnName(i + 1),rs.getString(i + 1));
+            }
+            requestData.add(dataItem);
+        }
+        rs.close();
+        return requestData;
+    }
+}

+ 13 - 0
src/main/java/com/skyversation/poiaddr/controller/PoiAddressController.java

@@ -1,5 +1,6 @@
 package com.skyversation.poiaddr.controller;
 
+import com.skyversation.poiaddr.config.DbConnection;
 import com.skyversation.poiaddr.service.impl.TestDataServiceImpl;
 import com.skyversation.poiaddr.util.RequestUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -8,6 +9,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.sql.SQLException;
 
 @Slf4j
 @Validated
@@ -48,4 +50,15 @@ public class PoiAddressController {
         return "处理完成!用时" + (endTime - startTime) / 1000 + "秒!";
     }
 
+    /**
+     * 直接输入sql语句执行并返回结果
+     *
+     * @param sqlStr
+     * @return
+     * @throws SQLException
+     */
+    @GetMapping(value = "/runsSql/{sqlStr}")
+    public Object runSql(@PathVariable(name = "sqlStr") String sqlStr) throws SQLException {
+        return DbConnection.getInstance().runSqlStr(sqlStr);
+    }
 }

+ 2 - 0
src/main/resources/application.properties

@@ -26,6 +26,8 @@ spring.jpa.show-sql=false
 # \u677E\u6C5F\u8857\u9547
 app.area=\u677E\u6C5F
 app.town=\u5CB3\u9633\u8857\u9053\u3001\u6C38\u4E30\u8857\u9053\u3001\u65B9\u677E\u8857\u9053\u3001\u4E2D\u5C71\u8857\u9053\u3001\u5E7F\u5BCC\u6797\u8857\u9053\u3001\u4E5D\u91CC\u4EAD\u8857\u9053\u3001\u6CD7\u6CFE\u9547\u3001\u4F58\u5C71\u9547\u3001\u8F66\u58A9\u9547\u3001\u65B0\u6865\u9547\u3001\u6D1E\u6CFE\u9547\u3001\u4E5D\u4EAD\u9547\u3001\u6CD6\u6E2F\u9547\u3001\u77F3\u6E56\u8361\u9547\u3001\u65B0\u6D5C\u9547\u3001\u53F6\u69AD\u9547\u3001\u5C0F\u6606\u5C71\u9547
+app.db.username=dev_sjbdc_kjyy
+app.db.password=30DFBEABYi#5
 # \u9752\u6D66\u8857\u9547
 #app.area=\u9752\u6D66
 #app.town2=\u6731\u5BB6\u89D2\u9547\u3001\u8D75\u5DF7\u9547\u3001\u5F90\u6CFE\u9547\u3001\u534E\u65B0\u9547\u3001\u91CD\u56FA\u9547\u3001\u767D\u9E64\u9547\u3001\u7EC3\u5858\u9547\u3001\u91D1\u6CFD\u9547\u3001\u590F\u9633\u8857\u9053\u3001\u76C8\u6D66\u8857\u9053\u3001\u9999\u82B1\u6865\u8857\u9053