Scala基础2

Scala连接Mysql数据库

import java.sql.DriverManager

object ScalaJDBCApp{
  def main(args: Array[String]): Unit = {
    val url = "jdbc:mysql://117.50.6.123:3306/ruoze_d66"
    val user="root"
    val password ="123456"
    val sql ="select SCHEMA_VERSION, VERSION_COMMENT from VERSION"

    val connection = DriverManager.getConnection(url,user,password)
    val stmt = connection.createStatement()
    val rs = stmt.executeQuery(sql)

    while(rs.next()){
      val schema=rs.getString(1)
      val comment = rs.getString(2)

      print(schema+"..."+comment)
    }
    rs.close()
    stmt.close()
    connection.close()
  }
}

MySQL , Hadoop

父类和子类:两个类之间
子类 extends 父类
new 子类() 的时候会触发 new 父类()
重写: 父类有一个方法,子类里面有一个同样的方法 overwirte用来在子类中重写

抽象类
类里面的方法没有具体的实现

abstract class A{
  def speak()
  val name:String
}

class B extends A{
  override def speak():Unit={
    println("sadasd")
  }
  val name = "sda"
}

抽象的东西不能直接new,而是通过子类来new(子类不能还是抽象的)
Scala不能多继承

Trait
extends 类 with trait
也可以直接extend trait

高阶函数
一定要掌握!

val l = List(1,2,3,4,5,6,7,8)
println("1............"+l.map((x:Int) => x*2))
println("2............"+l.map(x => x*2))
println("3............"+l.map( _*2))

(_,1) 每一个单词赋1

    val l = List(1,2,3,4,5,6,7,8)
    println("1............"+l.map((x:Int) => x*2))
    println("2............"+l.map(x => x*2))
    println("3............"+l.map( _*2))

    // l*2>10
    println("4............"+l.map( _*2).filter(_>10))

    //取前2个
    println("5............"+l.map( _*2).filter(_>10).take(2))

    //求和
    println("6............"+ l.reduce(_+_))

    //1-2-3-..-8
    println("7............"+ l.reduce(_-_))

    println("8............"+ l.reduceLeft(_+_))
    println("9............"+ l.reduceLeft(_-_))

    println("max............"+ l.max)
    println("min............"+ l.min)

    //大于3的记录数
    println("10............"+ l.count(_>3))

    val a = List(List(1,2),List(3,4),List(5,6))
    println("11............"+ a.flatten)
    println("12............"+ a.flatten.map(_*2))

    // flatMap = flatten+map
    println("13............"+ a.flatMap(_.map(_*2)))


1............List(2, 4, 6, 8, 10, 12, 14, 16)
2............List(2, 4, 6, 8, 10, 12, 14, 16)
3............List(2, 4, 6, 8, 10, 12, 14, 16)
4............List(12, 14, 16)
5............List(12, 14)
6............36
7............-34
8............36
9............-34
max............8
min............1
10............5
11............List(1, 2, 3, 4, 5, 6)
12............List(2, 4, 6, 8, 10, 12)
13............List(2, 4, 6, 8, 10, 12)

模式匹配

val coaches = Array("a","b","c")
val coach = coaches(Random.nextInt(coaches.length))
coach match{
    case "a" => println("我是a")
    case "c" => println("我是c")
    case _ => println("我是b")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值