//1.查询数据//创建jdbcRDD,访问数据库
val sql ="select name,age from rdd where id >= ? and id <= ?"//有个分区的概念
val jdbcRDD =newJdbcRDD(
sc,()=>{//获取数据库连接对象
Class.forName(driver)
java.sql.DriverManager.getConnection(url, userName, passWd)},
sql,1,3,2,(rs)=>{println(rs.getString(1)+","+rs.getInt(2))})
jdbcRDD.collect //这里是行动算子
2.插入(优化前)
//结果:(发现顺序并不是插入的输入,因为分给的executor不同,但是mysql是无序的,所以并没有关系)//3 ss 40//2 lisi 30//1 zhangsan 20
dataRDD.foreach{case(id,username ,age)=>{//连接对象
Class.forName(driver)
val connection:Connection = java.sql.DriverManager.getConnection(url, userName, passWd)
val sql ="insert into rdd(id,name,age) values (?,?,?)"
val statement = connection.prepareStatement(sql)
statement.setInt(1,id)
statement.setString(2,username)
statement.setInt(3,age)
statement.executeUpdate()
statement.close()
connection.close()}}