JDBC基础的增删改查

310 阅读1分钟

main

package main

object JDBCDemo {
    @JvmStatic
    fun main(args: Array<String>) {
//        val executeUpdate = DBUtils.executeUpdate("INSERT INTO stu VALUES(?, ?, ?, ?);", "S_1666", "aoli", 20, "male")
//        println("$executeUpdate")

        DBUtils.executeQuery("SELECT* FROM student;")
    }
}

DBUtils

package main

import java.sql.*

object DBUtils {
    //驱动名称
    var driver = "com.mysql.cj.jdbc.Driver"
    //url连接字符串
    var url = "jdbc:mysql://localhost:3306/mydb2"
    //用户名
    var user = "root"
    //密码
    var password = "********"
    var conn: Connection? = DriverManager.getConnection(url, user, password)
    var pstat: PreparedStatement? = null
    var rs: ResultSet? = null

    init {
        try {
            Class.forName(driver)
        } catch (e: ClassNotFoundException) {
            println("注册驱动异常")
        }
    }

    //释放资源
    private fun closeAll(rs: ResultSet?, stat: Statement?, conn: Connection?) {
        rs?.close()
        stat?.close()
        conn?.close()
    }

    //执行命令(增删改)
    fun executeUpdate(sql: String?, vararg params: Any?): Int? {
        pstat = conn?.prepareStatement(sql)
        for (i in params.indices) {
            pstat?.setObject(i + 1, params[i])
        }
        val count = pstat?.executeUpdate()
        closeAll(null, pstat, conn)
        return count
    }

    //执行命令(查)
    fun executeQuery(sql: String?) {
        pstat = conn?.prepareStatement(sql)
        rs = pstat?.executeQuery(sql)
        while (rs!!.next()) {
            val sno = rs!!.getObject(1)
            val sname = rs!!.getObject(2)
            println("$sno....$sname")
        }
        closeAll(rs, pstat, conn)
    }
}