scala连接mysql数据库

Scala应用 —— JDBC的创建 用Scala实现JDBC的创建 阅读详情

scala中通常是通过JDBC组件来连接Mysql。JDBC, 全称为Java DataBase Connectivity standard。
在这里插入图片描述

加载依赖

其中包含 JDBC driver

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.29</version>
</dependency>

1.1 spark组件直接连接(推荐)

通过spark.read直接连接,直接得到dataframe

val database = "test_db"
val table = "test_table"
val user = "hive"
val password  = "hive"
val url= "jdbc:mysql://localhost:10101/"+database

val jdbcDF = (spark.read.format("jdbc")
.option("url", url)
.option("dbtable", table)
.option("user", user)
.option("password", password) 
.option("driver", "com.mysql.cj.jdbc.Driver") 
.load())

jdbcDF.show()


+---+--------+
| id|   value|
+---+--------+
|  0|Record 0|
|  1|Record 1|
|  2|Record 2|
|  3|Record 3|
|  4|Record 4|
+---+--------+



//通过connectionProperties避免多次写入配置
val connectionProperties = new Properties()
connectionProperties.put("user", "username")
connectionProperties.put("password", "password")
val jdbcDF2 = spark.read
	//可增加.option("","")添加其他参数
  .jdbc(url, table , connectionProperties)
// Specifying the custom data types of the read schema
connectionProperties.put("customSchema", "id DECIMAL(38, 0), name STRING")
val jdbcDF3 = spark.read
  .jdbc(url, table , connectionProperties)

// 保存数据
jdbcDF.write
  .format("jdbc")
  .option("url", "jdbc:postgresql:dbserver")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .save()
  
//或等价的:
jdbcDF2.write
  .jdbc(url, table , connectionProperties)

// Specifying create table column data types on write
jdbcDF.write
  .option("createTableColumnTypes", "name CHAR(64), comments VARCHAR(1024)")
  .jdbc(url, table , connectionProperties)
  
//通过query取数据
spark.read.format("jdbc")
.option("url", jdbcUrl)
.option("query", "select c1, c2 from t1")
.load()
//或放到properties里
connectionProperties.put("query", "select c1, c2 from t1")
spark.read
  .jdbc(url, table , connectionProperties)

注意:driver的类名根据不同的JDBC版本不同,早一些的版本为com.mysql.jdbc,而不是com.mysql.cj.jdbc.Driver。

2.1 jdbc api方法连接

还可通过 jdbc方法获取或保存数据

/**
  * Created by Administrator on 2017/12/23.
  */
import java.sql.{ Connection, DriverManager }


object ScalaJdbcConnectSelect extends App {


  // 访问本地MySQL服务器,通过3306端口访问mysql数据库
  val url = "jdbc:mysql://localhost:3306/cgjr?useUnicode=true&characterEncoding=utf-8&useSSL=false"
  //驱动名称
  val driver = "com.mysql.cj.jdbc.Driver"

  //用户名
  val username = "root"
  //密码
  val password = "12345"
  //初始化数据连接
  var connection: Connection = _
  try {
    //注册Driver
    Class.forName(driver)
    //得到连接
    connection = DriverManager.getConnection(url, username, password)
    val statement = connection.createStatement
    //执行查询语句,并返回结果
    val rs = statement.executeQuery("SELECT name, num FROM persons")//返回java.sql的ResultSet


    //打印返回结果
    while (rs.next) {
      val name = rs.getString("name")
      val num = rs.getString("num")
//      println(name+"\t"+num)
      println("name = %s, num = %s".format(name, num))
    }

    println("查询数据完成!")


    //    执行插入操作
    val rs2 = statement.executeUpdate("INSERT INTO `persons` (`name`, `num`) VALUES ('徐志摩', '22')")
    println("插入数据完成")


//    执行更新操作
    val rs3 = statement.executeUpdate("UPDATE persons set num=55 WHERE `name`=\"徐志摩\"")
    println("更新数据完成!")

//    执行删除操作

    val rs4 = statement.executeUpdate("delete from persons WHERE `name`=\"徐志摩\"")
    println("删除数据完成!")

//    执行调用存储过程操作
    val rs5 = statement.executeUpdate("call add_student(3)")
    println("调用存储过程完成!")


  } catch {
    case e: Exception => e.printStackTrace
  }
  //关闭连接,释放资源
  connection.close
}

参考

Spark Scala: Load Data from MySQL
【scala 数据库操作】scala操作mysql数据库
【官方】使用jdbc连接其他数据库

Scala连接MySQL和SQL Server数据库,增量抽取数据存储到Hive数据库 总结:本文介绍了使用Scala连接MySQL和SQL Server数据库的方法,并使用Spark对数据进行增量抽取,并存储到Hive数据库中。本文将介绍如何使用Scala语言连接MySQL和SQL Server数据库,并进行增量抽取数据并存储到Hive数据库中。接下来,我们需要创建一个Scala对象,用于连接MySQL和SQL Server数据库,并抽取数据。程序将会连接MySQL和SQL Server数据库,并将数据存储到Hive表中。接下来,我们在Hive中创建一个表,使用。,并分别传入连接参数。 阅读详情

相关推荐

Scala Spark MySQL连接池工具类及简单使用示例

本文介绍了如何使用Scala编写一个MySQL连接池工具类,并提供了简单的使用示例。通过使用连接池,我们可以有效地管理数据库连接,提高数据处理的性能和效率。希望本文对你在Scala Spark项目中使用MySQL连接池有所帮助。如有疑问,请随时提问。

CodeNexus的博客 334

大数据开发语言Scala(四)——Scala连接MySQL

这里我们实现两个类,一个用于测试Demo,一个用于实现增删改查的方法Utils。打开项目构建,添加选择Libiary。new Library中选择java。

five小点心的博客 1074

NXP S32K5 MCU如何赋能Zonal架构与软件定义汽车?

汽车电子架构正从分布式ECU向域集中、再向Zonal分区架构演进,核心驱动力在于线束简化、算力下沉与软件分层解耦。区域控制器作为物理区域的“调度员”,需要同时满足实时响应、功能安全、多网络协议转换和OTA升级等要求,这使MCU与SoC的选型成为系统工程的关键决策。MCU凭借确定性的微秒级启动、低功耗、丰富的IO控制以及成熟的ASIL-D认证路径,仍是区域控制器的主流选择。NXP S32K5正是面向这一场景发布的系列MCU:它集成多核锁步、CAN-XL、TSN以太网、硬件安全模块与双Bank Flash,补齐

weixin_28721917的博客 357

scala使用JDBC连接mysql数据库

Scala入门ing

Rainy_Lee的专栏 7600

aubo i5 + realsense D435i识别抓取实践二

aubo i5 + realsense D435i识别抓取实践二前言一、手眼标定是什么?二、标定软件安装1.aruco_ros安装2.vision_visp安装3.easy_handeye安装4.realsense驱动安装5.安装realsense ROS软件包三、配置1.launch文件修改2.打印二维码四、手眼标定1.启动launch文件2.标定步骤3.发布tf关系 前言 前面配置好了aubo机械臂的ROS软件包,机械臂可以正常运行后,接下来我们进行机械臂与相机的手眼标定。手眼标定分为eye_on_ha

转角 6374

IgH EtherCAT 从入门到精通:第 29 章 实战:EoE 远程维护通道搭建

摘要:本章详细介绍了基于EoE(Ethernet over EtherCAT)协议的远程维护通道搭建方案。主要内容包括:1)网络架构设计,采用管理网络与EoE子网隔离的方案;2)从站EoE支持确认与IP地址配置,提供API和命令行两种方式;3)路由/交换两种部署模式,重点推荐路由模式并给出自动化配置脚本;4)SSH远程访问配置,包括直接连接和跳板访问两种方式;5)安全加固措施,如防火墙规则、SSH密钥认证等;6)故障恢复机制与性能注意事项。该方案实现了通过EtherCAT网络对从站设备的远程SSH访问、文件

从事嵌入式linux android驱动开发,拥有全栈能力 360

scala写入mysql_手把手通过scala连接数据库

原标题:手把手通过scala连接数据库欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习、问答、求职,一站式搞定!对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。最近因为学习scala语言,最近工作上遇到一个问题,需要不借助ETL工具实...

weixin_29784009的博客 1023

异构图中的注意力机制网络:节点级别和语义级别的注意力(Python实现)

在本文中,我们介绍了如何使用Python实现异构图中的节点级别注意力和语义级别注意力。通过语义级别注意力,我们可以根据节点的语义信息对节点进行加权聚合。在本文中,我们将介绍如何使用Python实现异构图中的注意力机制网络,包括节点级别的注意力和语义级别的注意力。最后,我们使用注意力权重对节点特征进行加权聚合,得到聚合后的节点表示。然后,将聚合后的节点表示传递给语义级别注意力模型,根据节点的语义信息进行加权聚合,得到最终的表示。函数中,首先使用节点级别注意力模型对节点特征进行聚合,得到聚合后的节点表示。

HackNebulaZ的博客 485

scala访问mysql_scala 连接mysql数据库

scala 代码import java.sql.{DriverManager, Connection, ResultSet}object hello {val user="root"val password = "password"val host="yourip"val database="yourdb"val conn_str = "jdbc:mysql://"+host +":3306/"+...

weixin_39654067的博客 125

seurat v5更新及样本整合方法

1 Seurat 对象和 Assay 类发生了变化:支持更多种类的检测和数据类型,包括磁盘上的矩阵。引入了分层结构来存储数据,例如原始计数、标准化数据和 z 得分/方差稳定数据。可以使用 $ 访问器或 LayerData 函数来访问数据。现有的 Seurat v4 函数和工作流程仍可在 v5 中使用。2 整合工作流程发生了变化:简化了整合流程,提高了速度和内存效率。整合结果与 v4 工作流程略有不同,但用户仍可在 v5 中运行 v4 整合工作流程。

hx2024的博客 2686

SIWAVE仿真PCB操作说明

使用SIWAVE进行PCB仿真提取S参数的操作

sinat_15150363的博客 3067

scala代码连接mysql数据库

首先用样例类自动实现类构造参数的setter和getter,因为样例类能自动实现其他方法 toString()、equals()、copy()、hashCode()、 伴生对象中的apply()、unaply() unapply()接受一个对象,从对象中提取出相应的值,主要用于模式匹配中。 case class Userinfo(var userid:Int, var username:String, var birthday:String) object BaseDao{ //连接数据库获取对象 de

RacardoMlu的博客 338

YOLOv11改进策略【小目标改进】| 添加专用于小目标的检测层 附YOLOv1~YOLOv11的检测头变化详解

在目标检测领域,小目标检测一直是一个具有挑战性的问题。算法以其高效快速的特点受到广泛关注,然而在面对小目标时,仍存在一些局限性。本文将介绍如何在中添加小目标检测层,以提高对小目标的检测能力。原始模型结构如下:详细内容参考:YOLOv11原始模型结构介绍 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检

Limiiiing的博客 8798

Scala连接数据库(mysql,redis)

#用Scala连接mysql和redis数据库

ABU009的博客 710

【Flutter 问题系列第 16 篇】如何防止软键盘弹出后顶掉内容

Flutter 如何防止软键盘弹出后顶掉内容

“Allen Su”的博客 3317

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

scala mysql jdbc_scala调用jdbc连接数据库

from:http://mkaz.com/solog/scala/using-scala-with-jdbc-to-connect-to-mysql.htmlUsing Scala with JDBC to connect to MySQLDate: May 27, 2011A howto on connecting Scala to a MySQL database using JDBC. Th...

weixin_42525582的博客 216

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

scala写入mysql_scala(一):通过jdbc连接mysql数据库

1.主题描述scala针对MySQL数据库进行增删改查的基本操作。2.代码package SparkSQLproject.Logimport java.sql.{Connection, DriverManager}/*** scala通过jdbc连接mysql*/object self_scalaMysql {def main(args: Array[String]): Unit = {//1.数...

weixin_35733790的博客 561

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Scala连接MySQL数据库

版权声明:未经允许,随意转载,请附上本文链接谢谢(づ ̄3 ̄)づ╭❤~ Scala连接MySQL数据库 package com.anthony import java.sql.{Connection, DriverManager, ResultSet, Statement} /** * @ Description: * @ Date: Created in 21:54 10/0...

段渣渣推轮子的飙车场 1038

scala mysql bit_Scala连接mysql数据库

scala 连接mysql 还是采用原来的jdbc驱动。废话不多说,直接上代码。说明:scala 连接本地mysql里面一个ry-vue的数据库,并且查询sys_user表,遍历输出前4列的数据。package com.atguigu.chapter01import java.sql.{Connection, DriverManager}import org.junit.Test/*** desc...

weixin_30955739的博客 186

scala JDBC连接Mysql数据库

scala连接数据库一、在mysql创建表结构二、导入依赖包三、代码部分 一、在mysql创建表结构 create table student( id int primary key auto_increment, name varchar(255), age int ) 插入一组测试数据 insert into student(name,age) values("张三",21),("李四",25) 二、导入依赖包 可以直接传入jar包,maven项目可以导入依赖 <dependency>

timicai的博客 438

scala写入mysql_如何使用Scala连接到MySQL数据库?

I'm working on a little project where I'd like to parse some data, and then put it into a database. I'm not working with Lift, and I haven't been able to find a standard way to do this.I'm fine writin...

weixin_30633869的博客 267

Scala+Spark连接MySQL数据库使用例子

环境:MySQL5.7 在写例子的时候,在pom.xml配置MySQL的驱动一直报 No suitable Driver 后面查了很多,说需要8.0以上的connector 配置后的例子如下: 在pom.xml中增加如下代码 <properties> <mysql-connector-java.version>8.0.11</mysql-conn...

零落的尘土 1465

Scala(逆变协变、scala连接mysql数据库)

逆变协变、scala连接mysql数据库一、逆变协变二、`scala`连接`mysql`数据库 一、逆变协变 +B是B的超集,叫协变 -A是A的子集,叫逆变 object ObjCovariantAndInversionDmo { class Animal { def eat(): Unit = { println("动物吃东西") } } class Cat extends Animal { // 猫科动物 override def eat(): Uni

qq_42005540的博客 284

scala写入mysql_scala 连接mysql数据库

scala 代码import java.sql.{DriverManager, Connection, ResultSet}object hello {val user="root"val password = "password"val host="yourip"val database="yourdb"val conn_str = "jdbc:mysql://"+host +":3306/"+...

weixin_42372573的博客 307

Scala实战—连接oracle及mysql数据库

主要介绍在Scala中如何实现oracle及mysql的连接。

打酱油的葫芦娃 1万+
上一篇: scala 短文本相似度计算
下一篇: Docker desktop使用配置
Code_LT
博客等级 码龄10年 307粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值