从mongodb中读取配置信息,执行SQL,结果集存入另一个库

来源:互联网 发布:基三正太捏脸数据 编辑:程序博客网 时间:2024/05/29 23:47
ip,端口,库名,集合名,sql语句存入一个mongodb中,JDBC执行,存入另一张表。使用环境可以是页面配置化。调用MongoJob即可public class MongoJob {    Connection conn = null;    Statement statement = null;    ResultSet rs=null;    ResultSetMetaData m =null;    public void MongoGetJob(String host,int port,String databasename,String collectionname,String hostpost,int portpost    ,String databasepostname,String collectionputname) {        MongoClient mongoClient = new MongoClient(host,port);        MongoDatabase mongoDatabase = mongoClient.getDatabase(databasename);        MongoCollection<Document> mongoCollection = mongoDatabase.getCollection(collectionname);        FindIterable<Document> findIterable = mongoCollection.find();        MongoCursor<Document> mongoCursor = findIterable.iterator();        while (mongoCursor.hasNext()) {            Document document = mongoCursor.next();            if (document != null) {                    String driver = document.getString("driver");                    String url=document.getString("url");                    String hostput=document.getString("hostput");                    String user= document.getString("user");                    String pass= document.getString("password");                    String sql1 = document.getString("sql");                    try {                    try {                        Class.forName(driver);                    } catch ( ClassNotFoundException e ) {                        e.printStackTrace();                    }                    conn= DriverManager.getConnection(url,user,pass);                    String sql = sql1;                    statement = conn.createStatement();                    rs=statement.executeQuery(sql);                    m=rs.getMetaData();                    int columns=m.getColumnCount();                    for(int i=1;i<=columns;i++)                    {                        System.out.print(m.getColumnName(i));                        System.out.print("\t\t");                    }                    while (rs.next()){                        MongoClient mongoClient1 = new MongoClient(hostpost,portpost);                        MongoDatabase mongoDatabase1 = mongoClient.getDatabase(databasepostname);                        Document document1=new Document();                        List<Document> documents=new ArrayList<Document>();                        MongoCollection<Document> mongoCollection1 = mongoDatabase.getCollection(collectionputname);                        document1.put("database",mongoDatabase.getName());                        document1.put("hostput",hostput);                        document1.put("user",user);                        document1.put("password",pass);                        for (int i=1;i<=columns;i++){                            document1.put(m.getColumnName(i),rs.getString(i));                        }                        documents.add(document1);                        mongoCollection1.insertMany(documents);                    }                } catch ( SQLException e ) {                    e.printStackTrace();                } finally {                    if (null != statement) {                        try {                            statement.close();                            rs.close();                        } catch ( SQLException e ) {                            e.printStackTrace();                        }                    }                }            }        }    }}
阅读全文
0 0