scala隐式类和隐式函数:jdbc连接并对数据库进行简单的增删改查

导包

在maven中导入jdbc的jar包

 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
  </dependency>

隐式类

jdbc的连接还是跟java一样,重要的是scala的隐式类和隐式函数的用法

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

object Demo2 {
  implicit class MysqlConn(obj:Demo1){
    private val driver="com.mysql.jdbc.Driver"
    private val url="jdbc:mysql://192.168.21.114:3306/test"
    private val userName="root"
    private val userPwd="ok"

    var connection:Connection=_

    def conn():Connection={
      Class.forName(driver)
      connection=DriverManager.getConnection(url,userName,userPwd)
      connection
    }

    private var insertStmt:PreparedStatement=conn.prepareStatement("insert into student values(?,?,?)")

    def insert(id:Int,name:String,age:Int):Unit={
      insertStmt.setInt(1,id)
      insertStmt.setString(2,name)
      insertStmt.setInt(3,age)
      val i:Int=insertStmt.executeUpdate()
      if (i==1){
        println("插入成功!")
      }
    }

    def select():Unit={
    val selectSql="select id,name,age from student"
    val rs:ResultSet=conn().createStatement().executeQuery(selectSql)
      while (rs.next()){
        var id=rs.getInt("id")
        var name=rs.getString("name")
        var age=rs.getInt("age")
        println(s"学号:${id} 姓名:${name} 年龄:${age}")
      }
    }

    private val updateStmt:PreparedStatement=conn.prepareStatement("update student set age=? where id=?")

    def update(id:Int,age:Int): Unit ={
      updateStmt.setInt(1,age)
      updateStmt.setInt(2,id)
      val i:Int=updateStmt.executeUpdate()
      if (i==1){
        println("修改成功!")
      }
    }

    private val deleteStmt:PreparedStatement=conn.prepareStatement("delete from student where id=?")
    def delete(id:Int): Unit ={
      deleteStmt.setInt(1,id)
      val i=deleteStmt.executeUpdate()
      if (i==1){
        println("删除成功!")
      }
    }

  }
}

导入隐式类连接jdbc,对数据库进行增删改查

import Demo2._

class Demo1

object Demo1 {
  def main(args: Array[String]): Unit = {
    val demo1=new Demo1
    demo1.select()
    demo1.insert(5,"霞",19)
    demo1.update(1,22)
    demo1.delete(6)
    demo1.select()
  }
}

运行结果

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值