最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Scala實現(xiàn)數(shù)據(jù)庫增刪查改操作詳解

 更新時間:2023年04月08日 09:52:44   作者:你∈我  
這篇文章主要介紹了Java Scala實現(xiàn)數(shù)據(jù)庫增刪查改操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

添加jar包

這里的Scala不是maven工程所以要找到項目結(jié)構(gòu)(快捷鍵:同時按住Ctrl+shift+Alt+s)在模塊里面添加添加MySQL的jar包,如果是Maven工程可以直接在pom里面直接加即可

實現(xiàn)操作數(shù)據(jù)庫需要兩個類,一個用于測試的Demo,一個用于實現(xiàn)增刪查改的Util方法

在MysqlDemo在這里需要用到伴生類和伴生對象,伴生類主要是實現(xiàn)連接數(shù)據(jù)庫

class MysqlDemo {
  //  連接數(shù)據(jù)庫 底層原理還是jdbc
  //驅(qū)動名稱
  var driver = "com.mysql.cj.jdbc.Driver"
  //  訪問MySQL服務(wù)器,通過3306端口訪問mysql數(shù)據(jù)庫
  var url = "jdbc:mysql://192.168.152.184:3306/exam"
  //用戶名
  var user = "root"
  //密碼
  var password = "123456"
  //輔助構(gòu)造器
  def this(driver: String, url: String, user: String, pwd: String) {
    this()
    this.driver = driver
    this.url = url
    this.user = user
    this.password = pwd
  }
}

伴生對象則主要是實現(xiàn)操作數(shù)據(jù)庫 ,需要先實現(xiàn)apply方法,主函數(shù)里面創(chuàng)建對象調(diào)用apply方法,調(diào)用連接方法和釋放資源

object MysqlDemo {
  //  實現(xiàn)apply方法
  def apply(): MysqlDemo = new MysqlDemo()
  def apply(driver: String, url: String, user: String, pwd: String): MysqlDemo = new MysqlDemo(driver, url, user, pwd)
  def main(args: Array[String]): Unit = {
    //創(chuàng)建對象,調(diào)用apply方法
    val demo = MysqlDemo()
    //導(dǎo)入MySQLUtil包
    import MysqlUtil._
    //調(diào)用創(chuàng)建連接的方法
    demo.conn()
    // 調(diào)用釋放資源方法
    demo.close(connection)
/**操作數(shù)據(jù)庫代碼*/
}

Util則需要先初始化數(shù)據(jù)庫連接,注冊驅(qū)動,得到數(shù)據(jù)庫連接,釋放資源

import java.sql.{Connection, DriverManager, PreparedStatement, ResultSet}
object MysqlUtil {
  implicit class MysqlOp(obj: MysqlDemo) {
    //初始化數(shù)據(jù)連接
    private var connection: Connection = _
    def conn(): Connection = {
      //注冊driver
      Class.forName(obj.driver)
      //得到數(shù)據(jù)庫連接
      val connection: Connection = DriverManager.getConnection(obj.url, obj.user, obj.password)
      connection
    }
    //釋放資源
    def close(conn: Connection): Unit = {
      if (conn != null) {
        conn.close()
      }
    }
}

準(zhǔn)備工作已做完下面要實現(xiàn)對數(shù)據(jù)庫的增刪查改

添加數(shù)據(jù)

方法一

//Util代碼
//添加數(shù)據(jù)方法一
    def insertStudent: Int = {
      val insertSqlStr = "insert into student(name, age, gender, telephone, email, classid)" +
        "values ('周七', 6, '男', '13888888888', '346497@qq.com', 2)"
      val i: Int = conn().createStatement.executeUpdate(insertSqlStr)
      i
    }
//Demo測試代碼
 //添加數(shù)據(jù)方法一
    val i: Int = demo.insertStudent
    if (i == 1) {
      println("添加成功")
    } else if (i == 0) {
      println("添加失敗")
    }

方法二

//Util代碼  
   //添加數(shù)據(jù)方法二
    def insertStudent(name: String, age: Int, gender: String, telephone: String, email: String, classid: Int): Int = {
      val insertSqlStr = "insert into student(id,name, age, gender, telephone, email, classid)" +
        "values (null,?,?,?,?,?,?)"
      val preStmt: PreparedStatement = conn().prepareStatement(insertSqlStr)
      preStmt.setString(1, name)
      preStmt.setInt(2, age)
      preStmt.setString(3, gender)
      preStmt.setString(4, telephone)
      preStmt.setString(5, email)
      preStmt.setInt(6, classid)
      val i: Int = preStmt.executeUpdate()
      i
    }
//Demo測試代碼
 //添加數(shù)據(jù)方法二
    val i: Int = demo.insertStudent("aaa", 18, "男", "12345678910", "34649756@qq.com", 1)
    if (i == 1) {
      println("添加成功")
    } else if (i == 0) {
      println("添加失敗")
    }

刪除數(shù)據(jù)

//Util代碼
  def deleteStudent(id: Int): Int = {
      val deleteSql = "delete from student where id= ?"
      val preStmt: PreparedStatement = conn().prepareStatement(deleteSql)
      preStmt.setInt(1, id)
      val i: Int = preStmt.executeUpdate()
      i
    }
//Demo測試代碼
        val i: Int = demo.deleteStudent(21)
        if (i == 1) {
          println("刪除成功")
        } else if (i == 0) {
          println("刪除失敗")
        }

查詢數(shù)據(jù)

//Util代碼
   def selectStudent: Unit = {
      val selectSql = "select id,name, age, gender, telephone, email, classid from student"
      val rs: ResultSet = conn().createStatement().executeQuery(selectSql)
      println("學(xué)號\t姓名\t年齡\t性別\t手機號\t郵箱\t班級編號")
      while (rs.next()) {
        val id: Int = rs.getInt("id")
        val name: String = rs.getString("name")
        val age: Int = rs.getInt("age")
        val gender: String = rs.getString("gender")
        val telephone: String = rs.getString("telephone")
        val email: String = rs.getString("email")
        val classid: String = rs.getString("classid")
        println(id + "\t" + name + "\t" + age + "\t" + gender + "\t" + telephone + "\t" + email + "\t" + classid)
      }
    }
//Demo測試代碼
        demo.selectStudent

修改數(shù)據(jù)

//Util代碼
   def updateStudent(id: Int, name: String, age: Int, gender: String, telephone: String, email: String, classid: Int): Int = {
      val updateSql = "update student set name=?," + "age=?, " + "gender=?," +
        "telephone=?," + "email=?, " + "classid=? where id=?"
      val preStmt: PreparedStatement = conn().prepareStatement(updateSql)
      preStmt.setString(1, name)
      preStmt.setInt(2, age)
      preStmt.setString(3, gender)
      preStmt.setString(4, telephone)
      preStmt.setString(5, email)
      preStmt.setInt(6, classid)
      preStmt.setInt(7, id)
      val i: Int = preStmt.executeUpdate()
      i
    }
//Demo測試代碼
        val i: Int = demo.updateStudent(22, "test", 25, "女", "123456789", "369852@qq.com", 2)
        if (i == 1) {
          println("修改成功")
        } else if (i == 0) {
          println("修改失敗")
        }

完整代碼

MysqlUtil代碼

import java.sql.{Connection, DriverManager, PreparedStatement, ResultSet}
object MysqlUtil {
  implicit class MysqlOp(obj: MysqlDemo) {
    //初始化數(shù)據(jù)連接
    private var connection: Connection = _
    def conn(): Connection = {
      //注冊driver
      Class.forName(obj.driver)
      //得到數(shù)據(jù)庫連接
      val connection: Connection = DriverManager.getConnection(obj.url, obj.user, obj.password)
      connection
    }
    //釋放資源
    def close(conn: Connection): Unit = {
      if (conn != null) {
        conn.close()
      }
    }
    //添加數(shù)據(jù)方法一
    def insertStudent: Int = {
      val insertSqlStr = "insert into student(name, age, gender, telephone, email, classid)" +
        "values ('bbb', 6, '男', '13852277346', '3464975236@qq.com', 2)"
      val i: Int = conn().createStatement.executeUpdate(insertSqlStr)
      i
    }
    //添加數(shù)據(jù)方法二
    def insertStudent(name: String, age: Int, gender: String, telephone: String, email: String, classid: Int): Int = {
      val insertSqlStr = "insert into student(id,name, age, gender, telephone, email, classid)" +
        "values (null,?,?,?,?,?,?)"
      val preStmt: PreparedStatement = conn().prepareStatement(insertSqlStr)
      preStmt.setString(1, name)
      preStmt.setInt(2, age)
      preStmt.setString(3, gender)
      preStmt.setString(4, telephone)
      preStmt.setString(5, email)
      preStmt.setInt(6, classid)
      val i: Int = preStmt.executeUpdate()
      i
    }
    //刪除數(shù)據(jù)
    def deleteStudent(id: Int): Int = {
      val deleteSql = "delete from student where id= ?"
      val preStmt: PreparedStatement = conn().prepareStatement(deleteSql)
      preStmt.setInt(1, id)
      val i: Int = preStmt.executeUpdate()
      i
    }
    //修改數(shù)據(jù)
    def updateStudent(id: Int, name: String, age: Int, gender: String, telephone: String, email: String, classid: Int): Int = {
      val updateSql = "update student set name=?," + "age=?, " + "gender=?," +
        "telephone=?," + "email=?, " + "classid=? where id=?"
      val preStmt: PreparedStatement = conn().prepareStatement(updateSql)
      preStmt.setString(1, name)
      preStmt.setInt(2, age)
      preStmt.setString(3, gender)
      preStmt.setString(4, telephone)
      preStmt.setString(5, email)
      preStmt.setInt(6, classid)
      preStmt.setInt(7, id)
      val i: Int = preStmt.executeUpdate()
      i
    }
    //查詢數(shù)據(jù)
    def selectStudent: Unit = {
      val selectSql = "select id,name, age, gender, telephone, email, classid from student"
      val rs: ResultSet = conn().createStatement().executeQuery(selectSql)
      println("學(xué)號\t姓名\t年齡\t性別\t手機號\t郵箱\t班級編號")
      while (rs.next()) {
        val id: Int = rs.getInt("id")
        val name: String = rs.getString("name")
        val age: Int = rs.getInt("age")
        val gender: String = rs.getString("gender")
        val telephone: String = rs.getString("telephone")
        val email: String = rs.getString("email")
        val classid: String = rs.getString("classid")
        println(id + "\t" + name + "\t" + age + "\t" + gender + "\t" + telephone + "\t" + email + "\t" + classid)
      }
    }
  }
}

MysqlDemo代碼

import java.sql.Connection
class MysqlDemo {
  //  連接數(shù)據(jù)庫 底層原理還是jdbc
  //驅(qū)動名稱
  var driver = "com.mysql.cj.jdbc.Driver"
  //  訪問MySQL服務(wù)器,通過3306端口訪問mysql數(shù)據(jù)庫
  var url = "jdbc:mysql://192.168.152.184:3306/exam"
  //用戶名
  var user = "root"
  //密碼
  var password = "123456"
  //輔助構(gòu)造器    
  def this(driver: String, url: String, user: String, pwd: String) {
    this()
    this.driver = driver
    this.url = url
    this.user = user
    this.password = pwd
  }
}
object MysqlDemo {
  //  實現(xiàn)apply方法
  def apply(): MysqlDemo = new MysqlDemo()
  def apply(driver: String, url: String, user: String, pwd: String): MysqlDemo = new MysqlDemo(driver, url, user, pwd)
  def main(args: Array[String]): Unit = {
    //創(chuàng)建對象,調(diào)用apply方法
    val demo = MysqlDemo()
    //導(dǎo)入MySQLUtil包
    import MysqlUtil._
    //調(diào)用創(chuàng)建連接的方法
    val connection: Connection = demo.conn()
    // 調(diào)用釋放資源方法
    demo.close(connection)
    //添加數(shù)據(jù)方法一
    val i: Int = demo.insertStudent
    if (i == 1) {
      println("添加成功")
    } else if (i == 0) {
      println("添加失敗")
    }
    //添加數(shù)據(jù)方法二
    val i: Int = demo.insertStudent("aaa", 18, "男", "12345678910", "34649756@qq.com", 1)
    if (i == 1) {
      println("添加成功")
    } else if (i == 0) {
      println("添加失敗")
    }
    //查詢數(shù)據(jù)
    demo.selectStudent
    // 修改數(shù)據(jù)
    val i: Int = demo.updateStudent(22, "test", 25, "女", "123456789", "369852@qq.com", 2)
    if (i == 1) {
      println("修改成功")
    } else if (i == 0) {
      println("修改失敗")
    }
    //刪除數(shù)據(jù)
    val i: Int = demo.deleteStudent(21)
    if (i == 1) {
      println("刪除成功")
    } else if (i == 0) {
      println("刪除失敗")
    }
  }
}

到此這篇關(guān)于Java Scala實現(xiàn)數(shù)據(jù)庫增刪查改操作詳解的文章就介紹到這了,更多相關(guān)Java Scala數(shù)據(jù)庫增刪查改內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java面向?qū)ο蠡A(chǔ)知識之?dāng)?shù)組和鏈表

    Java面向?qū)ο蠡A(chǔ)知識之?dāng)?shù)組和鏈表

    這篇文章主要介紹了Java面向?qū)ο蟮闹當(dāng)?shù)組和鏈表,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-11-11
  • Java最常用的6個簡單的計算題

    Java最常用的6個簡單的計算題

    本篇文章給大家整理的在JAVA中最常用到的簡單的計算題,對此有興趣的朋友可以測試參考下。
    2018-02-02
  • springboot 整合 seata的配置過程

    springboot 整合 seata的配置過程

    本文給大家介紹springboot 整合 seata的配置過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-08-08
  • spring?@Scheduled注解各參數(shù)使用以及定時任務(wù)詳解

    spring?@Scheduled注解各參數(shù)使用以及定時任務(wù)詳解

    文章詳細(xì)介紹了Spring框架中@Scheduled注解的各個參數(shù),包括cron表達(dá)式、時區(qū)、fixedDelay、fixedRate、initialDelay等,并提供了多個示例來說明這些參數(shù)的使用方法
    2024-11-11
  • Java下載文件時文件名亂碼問題解決辦法

    Java下載文件時文件名亂碼問題解決辦法

    我最近在開發(fā)時遇到了文件另存為時文件名出現(xiàn)亂碼,在火狐上正常的文件名,在IE中又出現(xiàn)亂碼問題,然后好不容易在IE下調(diào)試好了文件名亂碼問題,在火狐下又出現(xiàn)亂碼,最后終于感覺這樣是能解決了。具體如下:
    2013-04-04
  • @Schedule?如何解決定時任務(wù)推遲執(zhí)行

    @Schedule?如何解決定時任務(wù)推遲執(zhí)行

    這篇文章主要介紹了@Schedule?如何解決定時任務(wù)推遲執(zhí)行問題。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • JAVA寶藏工具h(yuǎn)utool的使用

    JAVA寶藏工具h(yuǎn)utool的使用

    開發(fā)過程中總是會遇到需要自己自定義工具類的情況,做一些數(shù)據(jù)轉(zhuǎn)換、字符串操作、日期處理、加解密、編解碼、金額計算等,本文就詳細(xì)的介紹有一個工具類hutool的使用,感興趣的可以了解一下
    2021-10-10
  • JAVA加密算法實密鑰一致協(xié)議代碼示例

    JAVA加密算法實密鑰一致協(xié)議代碼示例

    這篇文章主要介紹了JAVA加密算法實密鑰一致協(xié)議代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • springmvc用于方法鑒權(quán)的注解攔截器的解決方案代碼

    springmvc用于方法鑒權(quán)的注解攔截器的解決方案代碼

    這篇文章主要介紹了springmvc用于方法鑒權(quán)的注解攔截器的解決方案代碼,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Springboot框架整合添加redis緩存功能

    Springboot框架整合添加redis緩存功能

    緩存就是一個存儲器,在技術(shù)選型中,常用?Redis?作為緩存數(shù)據(jù)庫。緩存主要是在獲取資源方便性能優(yōu)化的關(guān)鍵方面。Redis?是一個高性能的?key-value?數(shù)據(jù)庫,接下來通過本文給大家介紹Springboot框架整合添加redis緩存功能,感興趣的朋友一起看看吧
    2021-11-11

最新評論

固镇县| 横山县| 深圳市| 米易县| 龙泉市| 兴隆县| 金华市| 河西区| 米泉市| 厦门市| 云阳县| 正镶白旗| 新兴县| 固安县| 隆回县| 北京市| 万年县| 光山县| 沙湾县| 杨浦区| 陕西省| 桐梓县| 乌鲁木齐市| 拉孜县| 茂名市| 抚松县| 思茅市| 三明市| 东乡族自治县| 自治县| 噶尔县| 丰顺县| 白沙| 威宁| 永胜县| 会昌县| 平和县| 铜梁县| 东源县| 聊城市| 深州市|