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

举报
小米粒-biubiubiu 发表于 2020/12/02 22:48:45 2020/12/02
【摘要】 一、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


  
  1. import scala.io.Source
  2. object FileApp {
  3. def main(args: Array[String]): Unit = {
  4. val file = Source.fromFile("D:/HostKeyDB.txt")(scala.io.Codec.UTF8)
  5. def readLine(): Unit = {
  6. for (line <- file.getLines()) {
  7. println(line)
  8. }
  9. }
  10. // readLine()
  11. def readChar(): Unit = {
  12. for (ele <- file) {
  13. print(ele + " ")
  14. }
  15. }
  16. readChar()
  17. def readNet(): Unit = {
  18. val file = Source.fromURL("http://www.baidu.com")
  19. for (line <- file.getLines()) {
  20. println(line)
  21. }
  22. }
  23. readNet()
  24. }
  25. }

 

 

 

二、scala 操作mysql 数据库


  
  1. import java.sql
  2. import java.sql.DriverManager
  3. /**
  4. * @author DuanZhaoXu
  5. * @ClassName:
  6. * @Description:
  7. * @date 2018年12月20日 11:03:00
  8. */
  9. object MysqlApp {
  10. def main(args: Array[String]): Unit = {
  11. // val driver="com.mysql.jdbc.Driver"
  12. val url="jdbc:mysql://192.168.42.199:3306/agri_devframe"
  13. val username="root"
  14. val password="123456"
  15. var connection:sql.Connection=null
  16. try{
  17. // make the connection
  18. classOf[com.mysql.jdbc.Driver]
  19. connection=DriverManager.getConnection(url,username,password)
  20. val statement=connection.createStatement()
  21. val sql="select * from DEV_USER"
  22. val resultSet=statement.executeQuery(sql)
  23. while (resultSet.next) {
  24. val title=resultSet.getString("NAME")
  25. val date=resultSet.getString("EMAIL")
  26. val password = resultSet.getString("PASSWORD")
  27. println(s"$title, $date")
  28. }
  29. }catch {
  30. case e:Exception=>e.printStackTrace()
  31. }finally {
  32. if(connection!=null) {
  33. connection.close()
  34. }
  35. }
  36. }
  37. }

 

 

三、scala 操作 xml 文件


  
  1. import java.io.{FileInputStream, InputStreamReader}
  2. import scala.xml.XML
  3. /**
  4. * @author DuanZhaoXu
  5. * @ClassName:
  6. * @Description:
  7. * @date 2018年12月20日 11:09:58
  8. */
  9. object XMLApp {
  10. def main(args: Array[String]): Unit = {
  11. //loadXML()
  12. println("=======================")
  13. readXMLAttr()
  14. }
  15. def readXMLAttr(): Unit = {
  16. val xml = XML.load(this.getClass.getClassLoader.getResource("test.xml"))
  17. // 找symbol下的units
  18. val unit = xml \ "symbol" \ "units"
  19. println(unit)
  20. println("----------------------")
  21. // 找所有的units
  22. val fields = xml \\ "units"
  23. for (field <- fields) {
  24. println(field)
  25. }
  26. println("----------------------")
  27. // 找tiker属性
  28. // 方式一
  29. // val fieldAttrs = (xml \ "symbol").map(_ \ "@ticker")
  30. // 方式二
  31. val fieldAttrs = (xml \ "symbol" \\ "@ticker")
  32. for (fieldAttr <- fieldAttrs) {
  33. println(fieldAttr)
  34. }
  35. println("----------------------")
  36. // 过滤出指定ticker的symbol
  37. // 方式一
  38. // val filters = (xml \\ "symbol").filter(_.attribute("ticker").exists(_.text.equals("apple")))
  39. // 方式二
  40. val filters = (xml \\ "symbol").filter(x => ((x \ "@ticker").text).equals("apple"))
  41. for (filter <- filters) {
  42. println(filter)
  43. }
  44. println("----------------------")
  45. (xml \ "symbol" \ "units").map(x=>(x.text )).foreach(println)
  46. }
  47. def loadXML(): Unit = {
  48. //方式一
  49. // val xml = XML.load(this.getClass.getClassLoader.getResource("test.xml"))
  50. // println(xml)
  51. // 方式二
  52. // val xml = XML.load(new FileInputStream(
  53. // "D:/test.xml"))
  54. // println(xml)
  55. // 方式三
  56. val xml = XML.load(new InputStreamReader(new FileInputStream(
  57. "D:/test.xml")))
  58. println(xml)
  59. }
  60. }

四、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

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

全部回复

上滑加载中

设置昵称

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

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

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