Bladeren bron

查询数据库表

suochencheng 7 jaren geleden
bovenliggende
commit
9abcc930fc

+ 3 - 0
src/main/java/com/izouma/awesomeadmin/util/Const.java

@@ -9,6 +9,9 @@ import java.sql.Statement;
 import java.util.HashMap;
 import java.util.Map;
 
+/**
+ * 数据源常量
+ */
 public class Const {
 
     public static Map<String, DataSourceInfo> DataSourceInfoMap = new HashMap<>();

+ 74 - 0
src/main/java/com/izouma/awesomeadmin/util/DatabaseUtil.java

@@ -0,0 +1,74 @@
+package com.izouma.awesomeadmin.util;
+
+import com.izouma.awesomeadmin.model.DataSourceInfo;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 数据源方法
+ */
+public class DatabaseUtil {
+
+
+    public static List<String> loadDatabaseTables(DataSourceInfo dataSourceInfo) {
+
+
+        List<String> tables = new ArrayList<>();
+
+        String sql = "show tables";
+
+        String DRIVER = "com.mysql.jdbc.Driver";
+
+        PropertiesFileLoader propertiesFileLoader = PropertiesFileLoader.getInstance();
+        propertiesFileLoader.getProperties("properties/jdbc.properties", "jdbc.url");
+
+        String url = propertiesFileLoader.getProperties("properties/jdbc.properties", "jdbc.url");
+        String user = propertiesFileLoader.getProperties("properties/jdbc.properties", "jdbc.username");
+        String password = propertiesFileLoader.getProperties("properties/jdbc.properties", "jdbc.password");
+
+        if (!"dataSource".equals(dataSourceInfo.getCode())) {
+            if ("Mysql".equals(dataSourceInfo.getDatabaseType())) {
+                url = "jdbc:mysql://" + dataSourceInfo.getUrl() + "/" + dataSourceInfo.getDatabaseName();
+                user = dataSourceInfo.getUsername();
+                password = dataSourceInfo.getPassword();
+            } else if ("SqlServer".equals(dataSourceInfo.getDatabaseType())) {
+                DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
+                url = "jdbc:sqlserver://" + dataSourceInfo.getUrl() + ";DatabaseName=" + dataSourceInfo.getDatabaseName();
+                user = dataSourceInfo.getUsername();
+                password = dataSourceInfo.getPassword();
+                sql = "select * from sys.tables order by name";
+            }
+
+        }
+
+
+        Connection conn = JDBC.connectDB(DRIVER, url, user, password);
+        try {
+            Statement stmt = conn.createStatement();
+            ResultSet rs = stmt.executeQuery(sql);
+            while (rs.next()) {
+
+                tables.add(rs.getString(1));
+            }
+        } catch (SQLException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                conn.close();
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
+        }
+
+        return tables;
+    }
+
+
+}

+ 24 - 0
src/test/java/DatabaseServiceTest.java

@@ -0,0 +1,24 @@
+import com.izouma.awesomeadmin.util.DatabaseUtil;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.support.GenericXmlContextLoader;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@RunWith(value = SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"classpath:/spring/applicationContext.xml"}, loader = GenericXmlContextLoader.class)
+@Transactional
+public class DatabaseServiceTest {
+
+    @Test
+    public void testLoadDatabaseTables() {
+
+        List<String> tables = DatabaseUtil.loadDatabaseTables(null);
+
+        System.out.println(tables);
+    }
+
+}