一、搭建环境使用工具
idea 、gradle、jdk1.8、mysql数据库
具体idea 搭建gradle和项目环境略··········下边直接上代码
二、gradle依赖包设置
dependencies {
implementation 'org.apache.flink:flink-java:1.8.0'
implementation 'org.apache.flink:flink-streaming-java_2.11:1.8.0'
implementation 'org.apache.flink:flink-clients_2.11:1.8.0'
implementation 'org.apache.flink:flink-table_2.11:1.1.4'
implementation 'org.apache.flink:flink-jdbc_2.11:1.8.0'
implementation 'org.apache.flink:flink-core:1.8.0'
implementation 'mysql:mysql-connector-java:5.1.35'
}
三、New java class 文件 FlinkSQLDemo.java 内容如下
import org.apache.flink.api.common.typeinfo.BasicTypeInfo;
import org.apache.flink.api.common.typeinfo.TypeInformation;
import org.apache.flink.api.java.DataSet;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.io.jdbc.JDBCInputFormat;
import org.apache.flink.api.java.typeutils.RowTypeInfo;
public class FlinkSQLDemo {
public static void main(String[] args) throws Exception{
//sql查询结果列类型
TypeInformation[] fieldTypes = new TypeInformation[] {
BasicTypeInfo.INT_TYPE_INFO, //第一列数据类型
BasicTypeInfo.STRING_TYPE_INFO, //第二类数据类型
BasicTypeInfo.INT_TYPE_INFO,
BasicTypeInfo.STRING_TYPE_INFO,
BasicTypeInfo.BIG_DEC_TYPE_INFO
};
RowTypeInfo rowTypeInfo = new RowTypeInfo(fieldTypes);
JDBCInputFormat jdbcInputFormat = JDBCInputFormat.buildJDBCInputFormat()
//数据库连接信息
.setDrivername("com.mysql.jdbc.Driver")
.setDBUrl("jdbc:mysql://127.0.0.1:3306/dbName?useSSL=false&useUnicode=true&characterEncoding=UTF-8")
.setUsername("root")
.setPassword("123456")
.setQuery("SELECT id,name,age,emp_no,score FROM test_users")//查询sql
.setRowTypeInfo(rowTypeInfo)
.finish();
// StreamExecutionEnvironment env=StreamExecutionEnvironment.getExecutionEnvironment();
//搭建flink
final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
//获取数据源
DataSet s1 = env.createInput(jdbcInputFormat); // datasource
System.out.println("数据行:"+s1.count());
s1.print();//此处打印
}
四、ide中右键文件执行main方法,控制台结果如下
获取数据源后,可以根据数据源进行其他基本函数操作。