1

我想从 Sybase DB 服务器获取所有数据库名称的列表。我可以通过Java连接Sybase db,但不知道如何获取数据库名称列表。我正在使用 jconn4 jar 文件。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import com.sybase.jdbc4.jdbc.SybDriver;

public class ConnectToSybase {
    public static Connection conn = null;
    public static Statement stmt = null;
    public static SybDriver sybDriver = null;
    public static ResultSet rs = null;
    public static String dbServerIP = "10.10.10.11";
    public static String portNo = "5000";
    public static String dbName = "NewDB";

    public static void main(String[] args) {
        try {
            Class.forName("com.sybase.jdbc4.jdbc.SybDriver").newInstance();
            System.out.println("Driver loaded");

            conn = DriverManager.getConnection("jdbc:sybase:Tds:" + dbServerIP + ":" + portNo, "usrname", "password");
            stmt = conn.createStatement();

        } catch (Exception e) {
            System.out.println("In exception");
            e.printStackTrace();
        } finally {
            try {
                rs.close();
                stmt.close();
                conn.close();
            } catch (Exception e) {

            }
        }
    }
}
4

1 回答 1

1

我发现自己有一个工作代码。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import com.sybase.jdbc4.jdbc.SybDriver;

public class ConnectToSybase {
    public static Connection conn = null;
    public static Statement stmt = null;
    public static SybDriver sybDriver = null;
    public static ResultSet rs = null;
    public static String dbServerIP = "10.10.10.11";
    public static String portNo = "5000";
    public static String dbName = "NewDB";

    public static void main(String[] args) {
        try {
            Class.forName("com.sybase.jdbc4.jdbc.SybDriver").newInstance();
            System.out.println("Driver loaded");

            conn = DriverManager.getConnection("jdbc:sybase:Tds:" + dbServerIP + ":" + portNo, "usrname", "password");
            stmt = conn.createStatement();

            List<String> dbList = new ArrayList<String>();
            // getting list of DB names from the DB server
            ResultSet rs = conn.getMetaData().getCatalogs();
            while (rs.next()) {
                dbList.add(rs.getString(1));
            }

            for (String list : dbList) {
                System.out.println(list);
            }

        } catch (Exception e) {
            System.out.println("In exception");
            e.printStackTrace();
        } finally {
            try {
                rs.close();
                stmt.close();
                conn.close();
            } catch (Exception e) {

            }
        }
    }
}
于 2019-07-09T05:03:12.553 回答