scala語言入門(五)操作外部資料 及 專案實戰
阿新 • • 發佈:2018-12-27
一、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