文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java Scala怎么实现数据库增删查改操作

2023-07-05 23:39

关注

这篇文章主要讲解了“Java Scala怎么实现数据库增删查改操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java Scala怎么实现数据库增删查改操作”吧!

添加jar包

这里的Scala不是maven工程所以要找到项目结构(快捷键:同时按住Ctrl+shift+Alt+s)在模块里面添加添加MySQL的jar包,如果是Maven工程可以直接在pom里面直接加即可

Java Scala怎么实现数据库增删查改操作

实现操作数据库需要两个类,一个用于测试的Demo,一个用于实现增删查改的Util方法

在MysqlDemo在这里需要用到伴生类和伴生对象,伴生类主要是实现连接数据库

class MysqlDemo {  //  连接数据库 底层原理还是jdbc  //驱动名称  var driver = "com.mysql.cj.jdbc.Driver"  //  访问MySQL服务器,通过3306端口访问mysql数据库  var url = "jdbc:mysql://192.168.152.184:3306/exam"  //用户名  var user = "root"  //密码  var password = "123456"  //辅助构造器  def this(driver: String, url: String, user: String, pwd: String) {    this()    this.driver = driver    this.url = url    this.user = user    this.password = pwd  }}

伴生对象则主要是实现操作数据库 ,需要先实现apply方法,主函数里面创建对象调用apply方法,调用连接方法和释放资源

object MysqlDemo {  //  实现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 = {    //创建对象,调用apply方法    val demo = MysqlDemo()    //导入MySQLUtil包    import MysqlUtil._    //调用创建连接的方法    demo.conn()    // 调用释放资源方法    demo.close(connection)}

Util则需要先初始化数据库连接,注册驱动,得到数据库连接,释放资源

import java.sql.{Connection, DriverManager, PreparedStatement, ResultSet}object MysqlUtil {  implicit class MysqlOp(obj: MysqlDemo) {    //初始化数据连接    private var connection: Connection = _    def conn(): Connection = {      //注册driver      Class.forName(obj.driver)      //得到数据库连接      val connection: Connection = DriverManager.getConnection(obj.url, obj.user, obj.password)      connection    }    //释放资源    def close(conn: Connection): Unit = {      if (conn != null) {        conn.close()      }    }}

准备工作已做完下面要实现对数据库的增删查改

添加数据

方法一

//Util代码//添加数据方法一    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测试代码 //添加数据方法一    val i: Int = demo.insertStudent    if (i == 1) {      println("添加成功")    } else if (i == 0) {      println("添加失败")    }

方法二

//Util代码     //添加数据方法二    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测试代码 //添加数据方法二    val i: Int = demo.insertStudent("aaa", 18, "男", "12345678910", "34649756@qq.com", 1)    if (i == 1) {      println("添加成功")    } else if (i == 0) {      println("添加失败")    }

删除数据

//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("删除失败")        }

查询数据

//Util代码   def selectStudent: Unit = {      val selectSql = "select id,name, age, gender, telephone, email, classid from student"      val rs: ResultSet = conn().createStatement().executeQuery(selectSql)      println("学号\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

修改数据

//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) {    //初始化数据连接    private var connection: Connection = _    def conn(): Connection = {      //注册driver      Class.forName(obj.driver)      //得到数据库连接      val connection: Connection = DriverManager.getConnection(obj.url, obj.user, obj.password)      connection    }    //释放资源    def close(conn: Connection): Unit = {      if (conn != null) {        conn.close()      }    }    //添加数据方法一    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    }    //添加数据方法二    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    }    //删除数据    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    }    //修改数据    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    }    //查询数据    def selectStudent: Unit = {      val selectSql = "select id,name, age, gender, telephone, email, classid from student"      val rs: ResultSet = conn().createStatement().executeQuery(selectSql)      println("学号\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.Connectionclass MysqlDemo {  //  连接数据库 底层原理还是jdbc  //驱动名称  var driver = "com.mysql.cj.jdbc.Driver"  //  访问MySQL服务器,通过3306端口访问mysql数据库  var url = "jdbc:mysql://192.168.152.184:3306/exam"  //用户名  var user = "root"  //密码  var password = "123456"  //辅助构造器      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 {  //  实现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 = {    //创建对象,调用apply方法    val demo = MysqlDemo()    //导入MySQLUtil包    import MysqlUtil._    //调用创建连接的方法    val connection: Connection = demo.conn()    // 调用释放资源方法    demo.close(connection)    //添加数据方法一    val i: Int = demo.insertStudent    if (i == 1) {      println("添加成功")    } else if (i == 0) {      println("添加失败")    }    //添加数据方法二    val i: Int = demo.insertStudent("aaa", 18, "男", "12345678910", "34649756@qq.com", 1)    if (i == 1) {      println("添加成功")    } else if (i == 0) {      println("添加失败")    }    //查询数据    demo.selectStudent    // 修改数据    val i: Int = demo.updateStudent(22, "test", 25, "女", "123456789", "369852@qq.com", 2)    if (i == 1) {      println("修改成功")    } else if (i == 0) {      println("修改失败")    }    //删除数据    val i: Int = demo.deleteStudent(21)    if (i == 1) {      println("删除成功")    } else if (i == 0) {      println("删除失败")    }  }}

感谢各位的阅读,以上就是“Java Scala怎么实现数据库增删查改操作”的内容了,经过本文的学习后,相信大家对Java Scala怎么实现数据库增删查改操作这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯