最近正好有这个需求,不知道为什么百度搜一个结果也没有,所以自己写一篇方便和我有同样需求的人
因为是项目里已经用了mybatis,所以说就直接利用mybatis获取连接了,如果你用的原生jdbc就按jdbc的方式获取连接就好
def traversalDatabase(): Unit = {
val connection = SqlSessionUtils.getSqlSession(
sqlSessionTemplate.getSqlSessionFactory,
sqlSessionTemplate.getExecutorType,
sqlSessionTemplate.getPersistenceExceptionTranslator
).getConnection
val tableNameSet = connection.getMetaData.getTables(null, null, "%", null)
val tableNameList = tableNameSet.getResultList(_.getString("TABLE_NAME"))
tableNameList
.map(tableName => s"select * from $tableName")
.map(sql => connection.createStatement().executeQuery(sql))
.map(_.getResultList(row => 1.to(row.getMetaData.getColumnCount).map(i => row.getObject(i))))
.foreach(println)
}