Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import $ivy.`mysql:mysql-connector-java:5.1.39`
- import java.sql.{Connection, DriverManager, ResultSet}
- import java.util.Properties
- case class DBConfiguration(database: String,
- db: String,
- schema: String,
- tableName: String,
- hostname: String,
- portNo: Int,
- userName: String,
- password: String)
- def getJDBCUrl(conf: DBConfiguration): String = {
- val jdbcUrl = s"jdbc:${conf.database}://${conf.hostname}:${conf.portNo}/${conf.db}"
- if (conf.database.toLowerCase == "mysql")
- jdbcUrl + "?zeroDateTimeBehavior=convertToNull"
- else jdbcUrl
- }
- def getConnection(conf: DBConfiguration): Connection = {
- val connectionProps = new Properties()
- connectionProps.put("user", conf.userName)
- connectionProps.put("password", conf.password)
- val connectionString = getJDBCUrl(conf)
- Class.forName("com.mysql.jdbc.Driver")
- DriverManager.getConnection(connectionString, connectionProps)
- }
- val dbConf = DBConfiguration("mysql","db-name","","","mysql-hostname",3306,"username","password")
- val conn:Connection = getConnection(dbConf)
- val stmt = conn.createStatement
- val query = "select * from table"
- val rs = stmt.executeQuery(query)
- val rsSetMetaData = rs.getMetaData();
- val columnCount = rsSetMetaData.getColumnCount();
- while (rs.next()) {
- var strToPrint = ""
- (1 to columnCount).foreach{ i =>
- val obj = rs.getObject(i)
- val objStr = if(obj != null) {obj.toString} else "NULL"
- strToPrint += s"${rsSetMetaData.getColumnLabel(i)}:${objStr}\t"
- }
- println(strToPrint)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement