我是Scala的新手,我正在尝试使用~as delimiter将sql server数据库表和输出数据连接到文件。 我设法编写下面的代码,问题是在写入文件时我只能看到一条记录,但在哪里,如果我使用println在屏幕上打印,我可以看到几条记录,我想我错过了一些需要你帮助的人。 我想在输出文件中看到println显示的所有输出,截至目前我只能在输出文件中看到一行输出。
取得: - 285〜赛
预期: - 285〜赛义德 293〜凯瑟琳 295〜金 2170〜金 38〜金 211〜哈齐姆 2357〜山姆 297〜温贝托 291〜古斯塔沃 299〜皮拉
import java.sql.{Connection, DriverManager, ResultSet}
import java.io._
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
//> res35: Class[?0] = class com.microsoft.sqlserver.jdbc.SQLServerDriver
val conn = DriverManager.getConnection("jdbc:sqlserver://myip;databaseName=AdventureWorks2014;user=user;password=oracle;useUnicode=true;characterEncoding=UTF-8")
val pw = new PrintWriter(new File("C:\\scalatutorials\\hello.txt"));
val statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)
val rs = statement.executeQuery("SELECT TOP 10 BusinessEntityID,FirstName FROM AdventureWorks2014.dbo.Person;")
while (rs.next){
val bussid=rs.getInt("BusinessEntityID")
val First=rs.getString("FirstName")
val kop=List(bussid,First)
val opsql=kop.mkString("~")
pw.write(opsql)
println(opsql)
pw.close
} //> 285~Syed
//| 293~Catherine
//| 295~Kim
//| 2170~Kim
//| 38~Kim
//| 211~Hazem
//| 2357~Sam
//| 297~Humberto
//| 291~Gustavo
//| 299~Pilar
conn.close()
答案 0 :(得分:1)
while (rs.next){
...
..write(..)
}
//close open resources here and not in while loop.