首页 / 大数据 / 大数据之存mysql数据库
大数据之存mysql数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了大数据之存mysql数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1996字,纯文字阅读大概需要3分钟。
内容图文
package com.sjw.flink
import java.sql.{Connection, DriverManager, PreparedStatement}
import org.apache.flink.configuration.Configuration
import org.apache.flink.streaming.api.functions.sink.{RichSinkFunction, SinkFunction}
import org.apache.flink.streaming.api.scala._
object JDBCSinkTest {
def main(args: Array[String]): Unit = {
val env = StreamExecutionEnvironment.getExecutionEnvironment
env.setParallelism(1)
val stream: DataStream[String] = env.socketTextStream("sunjunwei1.com",6666)
val dataStream: DataStream[SensorReading] = stream.map(data => {
val arr: Array[String] = data.split(",")
SensorReading(arr(0).trim, arr(1).trim.toLong, arr(2).toDouble)
})
dataStream.addSink(new MyJdbcSink())
env.execute()
}
}
class MyJdbcSink() extends RichSinkFunction[SensorReading]{
//定义链接
var conn:Connection = _
//定义插入预编译器
var insertStmt:PreparedStatement = _
//定义更新预编译器
var updateStmt:PreparedStatement = _
override def open(parameters: Configuration): Unit ={
conn = DriverManager.getConnection("jdbc:mysql://sunjunwei1.com:3306/1711F","root","986262")
insertStmt = conn.prepareStatement("INSERT INTO temperature(id,temp) VALUE(?,?)")
updateStmt = conn.prepareStatement("UPDATE temperature SET temp = ? WHERE id = ?")
}
override def invoke(value: SensorReading, context: SinkFunction.Context[_]): Unit = {
//执行更新
updateStmt.setDouble(1,value.temperature)
updateStmt.setString(2,value.id)
updateStmt.execute()
//如果没有执行更新,那么就执行插入
if (updateStmt.getUpdateCount == 0) {
insertStmt.setString(1,value.id)
insertStmt.setDouble(2,value.temperature)
insertStmt.execute()
}
}
override def close(): Unit = {
insertStmt.close()
updateStmt.close()
conn.close()
}
}
大数据之存mysql数据库
标签:override com UNC rman rri environ 预编译 val 大数据
本文系统来源:https://www.cnblogs.com/whyuan/p/13276859.html
内容总结
以上是互联网集市为您收集整理的大数据之存mysql数据库全部内容,希望文章能够帮你解决大数据之存mysql数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。