mysql - Groovy:解析具有特定扩展名的文件以导入 MySQL,然后将其重命名为 *.bak

标签 mysql file parsing groovy

我制作了一个脚本,用于连接到数据库并更改特定列中的数据以获得绝对数字。 现在我想从具有特定扩展名的文本文件中读取一个数字,对数据库中的这些数字进行更改,然后使用 .bak 扩展名重命名文件。 请帮帮我。我提前感谢你的帮助!

import groovy.sql.Sql
sql = Sql.newInstance('jdbc:mysql://localhost:3306/database', 'login', 'password', 'com.mysql.jdbc.Driver')
int rowsAffected = sql.executeUpdate('update tablename set column = '01' where number=$NumberFromFile')
println "updated: ${rowsAffected}"

最佳答案

像这样的东西应该可以工作:

def newValue = '01'

new File( '/path/to/data.input' ).with { file ->
  file.withReader { reader ->
    new Scanner( reader ).useDelimiter( ';' ).with { scanner ->
      while( scanner.hasNext() ) {
        sql.executeUpdate "UPDATE tablename SET column=$newValue WHERE number=${scanner.nextInt()}"
      }
    }
  }
  file.renameTo( new File( file.parent, "${file.name}.bak" ) )
}

显然,您可能想在事务或批处理中执行此操作,但这应该给您想法

关于mysql - Groovy:解析具有特定扩展名的文件以导入 MySQL,然后将其重命名为 *.bak,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451741/

相关文章:

mysql - MySQL 5.6.39 中的等效语句是什么?

file - Powershell-列出子目录并为每个子目录计数文件

php - php读写dat文件

java - 在 Jquery 中迭代 Json 对象?

php - PDO SHOW TABLES 数组

mysql 一对多表与键值数据库列表

php - 如何防止 PHP 中的 SQL 注入(inject)?

file - 在 Electron 中保存用户数据的正确方法

java - 如何从字符串(不是斯坦福解析器的输出)形成一棵树(改编自斯坦福解析器)

php - 如何解析数据中包含换行符的 Excel CSV 数据?