是否可以连接mysql和sql server来获取其中的表?

用户不应该指定类型是ms sql还是我的sql? 我想在netbeans中做到这一点? 如果没有,有什么办法吗? 谢谢     
已邀请:
编辑 我不知何故,以为你想知道如何开发一个可以处理多个数据库的应用程序。所以这是一个可以帮助你的模式。但是要实际查询数据库并从中获取所需的所有数据,您需要使用相应的API。 (例如,Java for Java应用程序)。阅读直到本答案结束,我刚刚添加了一个如何将JDBC与实际的Sql Server数据库一起使用的示例。 (第一部分:如何管理持久层) 您应该为您的程序提供多层体系结构。其中一个层应该是将从数据库中查询/检索数据的持久层。从现在开始,我只想讨论这个持久层。 一种方法是使用Java接口。
public interface DataService
{
   connect();
   close();
   ArrayList<IUser> retrieveUserDatas(..);
   // other expected operations
   .... 
}
然后,为每种数据库类型提供一个此接口的实现类。所以你将拥有:
class SqlServer implements DataService
{
   // Implementation of your operations using Sql Server drivers
}

class Mysql implements DataService
{ 
   // Implementation of your operations using Mysql drivers
}
然后你可以让一个经理来决定你想要使用哪个数据库:
class Manager
{
   DataService dataService;
   public Manager(string databaseType)
   {
       if(databaseType.equals("sqlserver"))
       {
          dataService = new SqlServer();
       }

       else if(databaseType.equals("mysql"))
       {
          dataService = new Mysql();
       }
   }
}
因此,在您的上层,您将能够使用合适的数据库系统为持久层创建管理器:
Manager manager = new Manager("mysql"); // I want to manage my database layer with mysql
现在来自你的经理的at4ut将成为
Mysql
类的一个实例,你将能够使用这个类的操作。这只是每次向系统添加新数据库时需要更改的一行代码(+实现该接口并使用数据库的特定驱动程序的类)。 仅供参考,这是一种设计模式! (第二部分:使用JDBC) 例如,这里是Sql Server数据库的实现类实际上可以是这样的:
public class SqlServerAccess implements IDataServerAccess {

    static final String url= "jdbc:sqlserver://localhost:1433;databaseName="NAME OF YOUR DATABASE";integratedSecurity=true;";
    Connection connector;


    public void connection() {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
            connector = DriverManager.getConnection(url, "root", "");
        } catch (Exception ex) {
            Logger.getLogger(SqlServerAccess.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


    @Override
    public void close() {
        try {
            if(connector != null){
                connector.close();
            }
        } catch (SQLException ex) {
            Logger.getLogger(SqlServerAccess.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
connection()
方法中,您可以看到我引用了Sql Server驱动程序:
com.microsoft.sqlserver.jdbc.SQLServerDrive
因此,对于每个数据库,您将有一个特定的驱动程序要下载(.jar)并在您的实现类中指定。 最后,这是插入的样子:
public void insertData(Data data) {
        try {
            Statement st = dataServerAccess.connect().createStatement();
            st.execute("INSERT INTO DATA(bla, bla, bla, bla, created_at)"
                                + "VALUES('" + data.bla()
                                + "', '" + ..
                                + "', '" + ..
                                + "', '" + ..
                                + "','"  + getTodayTimestamp() +"')");
        } catch (SQLException ex) {

        } finally {
            dataServerAccess.close();
        }
    }
希望这个解释能帮助你建立自己想要的东西。您可能需要谷歌所有这些关键字(如JDBC,数据库层,您可以在以后进一步使用JPA,它是一个对象关系映射器。无论如何,要在Google上检查关键字!)。例如,这里有一些文档可以帮助您将JDBC与mysql一起使用。     

要回复问题请先登录注册