scala语言入门(五)操作外部数据 及 项目实战

举报
小米粒-biubiubiu 发表于 2020/12/02 22:48:45 2020/12/02
5.8k+ 0 0
【摘要】 一、scala 操作本地文件,网络url import scala.io.Source object FileApp { def main(args: Array[String]): Unit = { val file = Source.fromFile("D:/HostKeyDB.txt")(scala.io.Codec.UTF8) def readLine():...

一、scala 操作本地文件,网络url


      import scala.io.Source
      object FileApp {
       def main(args: Array[String]): Unit = {
      val file = Source.fromFile("D:/HostKeyDB.txt")(scala.io.Codec.UTF8)
      def readLine(): Unit = {
      for (line <- file.getLines()) {
       println(line)
       }
       }
      // readLine()
      def readChar(): Unit = {
      for (ele <- file) {
       print(ele + " ")
       }
       }
       readChar()
      def readNet(): Unit = {
      val file = Source.fromURL("http://www.baidu.com")
      for (line <- file.getLines()) {
       println(line)
       }
       }
       readNet()
        }
      }
  
 

二、scala 操作mysql 数据库


      import java.sql
      import java.sql.DriverManager
      /**
       * @author DuanZhaoXu
       * @ClassName:
       * @Description:
       * @date 2018年12月20日 11:03:00
       */
      object MysqlApp {
        def main(args: Array[String]): Unit = {
      // val driver="com.mysql.jdbc.Driver"
      val url="jdbc:mysql://192.168.42.199:3306/agri_devframe"
      val username="root"
      val password="123456"
      var connection:sql.Connection=null
      try{
      // make the connection
       classOf[com.mysql.jdbc.Driver]
       connection=DriverManager.getConnection(url,username,password)
      val statement=connection.createStatement()
      val sql="select * from DEV_USER"
      val resultSet=statement.executeQuery(sql)
      while (resultSet.next) {
      val title=resultSet.getString("NAME")
      val date=resultSet.getString("EMAIL")
      val password = resultSet.getString("PASSWORD")
       println(s"$title, $date")
       }
       }catch {
       case e:Exception=>e.printStackTrace()
       }finally {
      if(connection!=null) {
       connection.close()
       }
       }
        }
      }
  
 

三、scala 操作 xml 文件


      import java.io.{FileInputStream, InputStreamReader}
      import scala.xml.XML
      /**
       * @author DuanZhaoXu
       * @ClassName:
       * @Description:
       * @date 2018年12月20日 11:09:58
       */
      object XMLApp {
       def main(args: Array[String]): Unit = {
      //loadXML()
       println("=======================")
       readXMLAttr()
        }
       def readXMLAttr(): Unit = {
      val xml = XML.load(this.getClass.getClassLoader.getResource("test.xml"))
      // 找symbol下的units
      val unit = xml \ "symbol" \ "units"
       println(unit)
       println("----------------------")
      // 找所有的units
      val fields = xml \\ "units"
      for (field <- fields) {
       println(field)
       }
       println("----------------------")
      // 找tiker属性
      // 方式一
      // val fieldAttrs = (xml \ "symbol").map(_ \ "@ticker")
      // 方式二
      val fieldAttrs = (xml \ "symbol" \\ "@ticker")
      for (fieldAttr <- fieldAttrs) {
       println(fieldAttr)
       }
       println("----------------------")
      // 过滤出指定ticker的symbol
      // 方式一
      // val filters = (xml \\ "symbol").filter(_.attribute("ticker").exists(_.text.equals("apple")))
      // 方式二
      val filters = (xml \\ "symbol").filter(x => ((x \ "@ticker").text).equals("apple"))
      for (filter <- filters) {
       println(filter)
       }
       println("----------------------")
       (xml \ "symbol" \ "units").map(x=>(x.text )).foreach(println)
        }
       def loadXML(): Unit = {
      //方式一
      // val xml = XML.load(this.getClass.getClassLoader.getResource("test.xml"))
      // println(xml)
      // 方式二
      // val xml = XML.load(new FileInputStream(
      // "D:/test.xml"))
      // println(xml)
      // 方式三
      val xml = XML.load(new InputStreamReader(new FileInputStream(
      "D:/test.xml")))
       println(xml)
        }
      }
  
 

四、scala 和 java 混编代码实现 数据库,表增删改查demo

码云地址 :https://gitee.com/dzxmy/scala-boot-java

文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31905135/article/details/85115396

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。