flink 分页读取mysql

其实在官网的例子里有 但是baidu查不到

package org.example;


import org.apache.flink.api.common.typeinfo.BasicTypeInfo;
import org.apache.flink.api.common.typeinfo.TypeInformation;

import org.apache.flink.api.java.io.jdbc.JDBCInputFormat;
import org.apache.flink.api.java.io.jdbc.split.GenericParameterValuesProvider;

import org.apache.flink.api.java.io.jdbc.split.ParameterValuesProvider;
import org.apache.flink.api.java.typeutils.RowTypeInfo;

import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.types.Row;

import java.io.Serializable;
import java.sql.ResultSet;

public class MysqlSource {

   private static String driverClass = "net.sf.log4jdbc.DriverSpy";
   private static String dbUrl = "jdbc:log4jdbc:mysql://xxxxx:3306/res_order?useSSL=false";
   private static String userName = "xx";
   private static String passWord = "xxx";

   public static void main(String[] args) {
      StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

      TypeInformation[] fieldTypes = new TypeInformation[]{
         BasicTypeInfo.STRING_TYPE_INFO,
         BasicTypeInfo.LONG_TYPE_INFO
      };
      RowTypeInfo rowTypeInfo = new RowTypeInfo(fieldTypes);

      Serializable[][] queryParameters = new Integer[3][1];
      queryParameters[0] = new Integer[]{0, 10};
      queryParameters[1] = new Integer[]{10, 20};
      queryParameters[2] = new Integer[]{20, 40};
      ParameterValuesProvider paramProvider = new GenericParameterValuesProvider(queryParameters);

      //查询mysql
      int fetchSize = 2;

      JDBCInputFormat jdbcInputFormat = JDBCInputFormat.buildJDBCInputFormat()
         .setDrivername(driverClass)
         .setDBUrl(dbUrl)
         .setUsername(userName)
         .setPassword(passWord)
         .setQuery("select for_who,id from demand_message where id >? and id <=?")
         //.setParametersProvider()
         .setParametersProvider(paramProvider)
         .setRowTypeInfo(rowTypeInfo)
         .finish();
      DataStreamSource input1 = env.createInput(jdbcInputFormat);
      //env.setParallelism(1);
      input1.print();
      try {
         env.execute();
      } catch (Exception e) {
         e.printStackTrace();
      }

   }

}

你可能感兴趣的:(flink 分页读取mysql)