JavaScala实现数据库增删查改操作详解
短信预约 -IT技能 免费直播动态提醒
添加jar包
这里的Scala不是maven工程所以要找到项目结构(快捷键:同时按住Ctrl+shift+Alt+s)在模块里面添加添加MySQL的jar包,如果是Maven工程可以直接在pom里面直接加即可
实现操作数据库需要两个类,一个用于测试的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.Connection
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
}
}
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