《MySQL系列-开发相关》获取MySQL的JDBC连接对象(Scala版本)

6 篇文章 4 订阅
5 篇文章 3 订阅

获取MySQL的JDBC连接对象(Scala版本)

方法一:常规获取

  • JDBCUtils
package com.zxy.Utils

import java.sql.{Connection, DriverManager, ResultSet, Statement}

import org.slf4j.LoggerFactory

/**
 * @Author zxy
 * @Content 创建JDBC连接对象
 * @Date 2021-07-10
 */
object JDBCUtils {
    private val logger = LoggerFactory.getLogger(JDBCUtils.getClass.getSimpleName)
    private val MYSQL_DRIVER = "com.mysql.jdbc.Driver"
    private val MYSQL_URL = "jdbc:mysql://localhost:3306/zxy"
    private val MYSQL_USER = "root"
    private val MYSQL_PWD = "root"

    /**
     * 创建连接对象
     */
    def getMySQLConnection():Connection = {
        var connection:Connection = null
        try{
            Class.forName(MYSQL_DRIVER)
            connection = DriverManager.getConnection(MYSQL_URL,MYSQL_USER,MYSQL_PWD)
        }catch {
            case e:Exception => logger.error("创建JDBC连接对象异常")
        }
        connection
    }

    /**
     * 关闭Connection对象
     */
    def close(connection: Connection):Unit = {
        if(connection != null) connection.close()
    }

    /**
     * 测试JDBC创建的连接对象是否成功
     * @param args
     */
    def main(args: Array[String]): Unit = {
        val connection: Connection = JDBCUtils.getMySQLConnection()
        val statement: Statement = connection.createStatement()
        val sql = "select * from user"
        val resultSet: ResultSet = statement.executeQuery(sql)
        while (resultSet.next()){
            val username: String = resultSet.getString("username")
            val password: String = resultSet.getString("password")
            println(s"username = ${username},password = ${password}")
        }
    }

}

方法二:通过配置文件获取

  • jdbc.properties
url = jdbc:mysql://localhost:3306/zxy?useSSL=false
user = root
pwd = root
driver = com.mysql.jdbc.Driver
  • MySQLUtils
package com.zxy.Utils

import java.io.FileReader
import java.net.URL
import java.sql.{Connection, DriverManager, ResultSet, Statement}
import java.util.Properties

import org.slf4j.LoggerFactory

/**
 * @Author zxy
 * @Content 借助jdbc.properties获得连接对象
 * @Date 2021-07-10
 */
object MySQLUtils {
    private val logger = LoggerFactory.getLogger(MySQLUtils.getClass.getSimpleName)
    private var DRIVER = ""
    private var URL = ""
    private var USER = ""
    private var PWD = ""
    
    /**
     * 获取连接对象
     * @return
     */
    def getConnection(): Connection ={
        val properties = new Properties()
        val loader: ClassLoader = MySQLUtils.getClass.getClassLoader
        val resource: URL = loader.getResource("jdbc.properties")
        val path: String = resource.getPath
    
        properties.load(new FileReader(path))
    
        var connection: Connection = null
        try{
            URL = properties.getProperty("url")
            USER = properties.getProperty("user")
            PWD = properties.getProperty("pwd")
            DRIVER = properties.getProperty("driver")
            Class.forName(DRIVER)
            connection = DriverManager.getConnection(URL,USER,PWD)
            
        }catch {
            case e:Exception =>logger.error("JDBC连接异常")
        }
        connection
    }
    
    /**
     * 关闭Connection
     * @param connection
     */
    def close(connection: Connection):Unit = {
        if(connection != null) connection.close()
    }
    
    /**
     * 测试连接
     * @param args
     */
    def main(args: Array[String]): Unit = {
        val connection: Connection = MySQLUtils.getConnection()
        val statement: Statement = connection.createStatement()
        val sql = "select * from user"
        val resultSet: ResultSet = statement.executeQuery(sql)
        while (resultSet.next()){
            val username: String = resultSet.getString("username")
            val password: String = resultSet.getString("password")
            println(s"username = ${username},password = ${password}")
        }
    }
}

拓展

	/**
     * 获取预处理对象,先执行后设置参数
     * @param args
     */
    def main(args: Array[String]): Unit = {
        val connection: Connection = MySQLJDBC.getMySQLConnection()
        val sql = "select * from user where username = ? and password = ?"
        val ps: PreparedStatement = connection.prepareStatement(sql)
        ps.setString(1,"zxy")
        ps.setString(2,"zxy")
        val resultSet: ResultSet = ps.executeQuery()
        while (resultSet.next()){
            val username: String = resultSet.getString("username")
            val password: String = resultSet.getString("password")
            println(s"username = ${username},password = ${password}")
        }
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DATA数据猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值