Play Framework 从数据库中读取到Elastic Search

今天看公司项目的源码,自己简单的实现一下

public static void add() throws SQLException {
    	// jdbc连接配置
        String url = "jdbc:mysql://localhost:3306/canteen";
        String user = "username";
        String password = "password";
        String indexSQL = "select * from Test";
        long indexNum = 0;
        List<Test> list = new ArrayList<>();
    	// 获取数据库连接
        Connection con = DriverManager.getConnection(url, user, password);
        PreparedStatement preparedStatement = con.prepareStatement(indexSQL);
    	// 获取结果集
        ResultSet resultSet = preparedStatement.executeQuery();
        while(resultSet.next()) {
            // 组装对象
            Test test = new Test();
            test.id = resultSet.getInt("id");
            test.title = resultSet.getString("title");
            test.content = resultSet.getString("content");
            test.addTime = resultSet.getTimestamp("addTime");
            test.addTime = resultSet.getTimestamp("updateTime");
            list.add(test);
        }
        if(list.size() > 0) {
            indexNum += list.size();
            BulkRequestBuilder bulkRequestBuilder = getClient().prepareBulk();
            for(Test test : list) {
                Logger.info(test.toString());
                IndexRequest indexRequest = getClient().prepareIndex("test", "book", test.id.toString())
                        .setSource(gson.toJson(test))
                        .setParent(null)
                        .request();
                bulkRequestBuilder.add(indexRequest);
                BulkResponse bulkItemResponses = bulkRequestBuilder.setRefreshPolicy(WriteRequest.RefreshPolicy.NONE).execute().actionGet();
                if(bulkItemResponses.hasFailures()) {
                    Logger.error("Bulk Error");
                }
            }
        }
        renderJSON(gson.toJson(indexNum));
    }
	private static Client getClient() {
        // elasticsearch是启动的es服务名称
        String cluster = Play.configuration.getProperty("cluster", "elasticsearch");
        List<String> urls = Arrays.asList(Play.configuration.getProperty("urls", "localhost").split(","));
        Settings settings = Settings.builder()
                //es名称
                .put("cluster.name", cluster)
                // 是否自动嗅探整个集群的状态
                .put("client.transport.sniff", true)
                .build();
        TransportClient client = new PreBuiltTransportClient(settings);
        for(String url : urls) {
            TransportAddress transportAddress = new InetSocketTransportAddress(new InetSocketAddress(url, 9300));
            client.addTransportAddress(transportAddress);
        }
        return client;
    }	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值