日期:2014-05-16  浏览次数:20460 次

十分钟轻松搞定两个不同数据库之间的数据交换
JadePool为广大Java工作者提供了许多简洁实用的方法,如果需要实现不同数据库之间的数据交换,使用JadePool十分方便。这是十分有价值的实践活动,比如,在网站的数据管理中,我们需要将远程数据库的数据保存到本地数据库中,将SQL Server数据库的数据保存到Oracle中,等等。
1、建立远程数据库的连接:

    public static synchronized Connection getConFromRemote() {
        Connection con = null;
        String url = "jdbc:sqlserver://admin.xxx.xxx.com\\dbo:1436;databaseName=remote_jadepool";
        String userName = "hkm12345";
        String password = "pwd12345";
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            con = DriverManager.getConnection(url, userName, password);
        } catch (SQLException ex1) {
            ex1.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }
        return con;
    }



2、建立本地数据库的连接

    public static synchronized Connection getConFromLocal() {
        Connection con = null;
        String url = "jdbc:sqlserver://127.0.0.1\\dbo:1436;databaseName=jadepool";
        String userName = "hkm123";
        String password = "pwd123";
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            con = DriverManager.getConnection(url, userName, password);
        } catch (SQLException ex1) {
            ex1.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }
        return con;
    }



3、将远程数据库的数据保存到本地数据库中

    public void backupDB() {
        Jade j0 = new Jade(getConFromRemote(), cn.jadepool.sql.DbConnectionType.USING_DB_01);
        List<Map> v0 = j0.query("select * from jade_book");
        List<Map> v1 = j0.query("select * from jade_book_cs");
        j0.commit();
        
        Jade j1 = new Jade(getConFromLocal(), cn.jadepool.sql.DbConnectionType.USING_DB_02);
        j1.delete("delete from jade_book");
        j1.insert("jade_book", v0);
        j1.delete("delete from jade_book_cs");
        j1.insert("jade_book_cs", v1);
        j1.commit();
    }
    


请注意,这里演示的是两相同的数据库,使用不同的数据库不影响结果,但两者表的结构一定要一致。

更多JadePool话题请访问我的个人网站http://www.jadepool.cn