十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
今天小編給大家分享一下Java和Scala中怎么使用數(shù)據(jù)庫(kù)進(jìn)行增刪查改操作的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
成都創(chuàng)新互聯(lián)擁有網(wǎng)站維護(hù)技術(shù)和項(xiàng)目管理團(tuán)隊(duì),建立的售前、實(shí)施和售后服務(wù)體系,為客戶提供定制化的網(wǎng)站制作、做網(wǎng)站、網(wǎng)站維護(hù)、成都棕樹(shù)機(jī)房解決方案。為客戶網(wǎng)站安全和日常運(yùn)維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護(hù)服務(wù)覆蓋集團(tuán)企業(yè)、上市公司、外企網(wǎng)站、商城網(wǎng)站建設(shè)、政府網(wǎng)站等各類型客戶群體,為全球千余家企業(yè)提供全方位網(wǎng)站維護(hù)、服務(wù)器維護(hù)解決方案。
這里的Scala不是maven工程所以要找到項(xiàng)目結(jié)構(gòu)(快捷鍵:同時(shí)按住Ctrl+shift+Alt+s)在模塊里面添加添加MySQL的jar包,如果是Maven工程可以直接在pom里面直接加即可

實(shí)現(xiàn)操作數(shù)據(jù)庫(kù)需要兩個(gè)類,一個(gè)用于測(cè)試的Demo,一個(gè)用于實(shí)現(xiàn)增刪查改的Util方法
在MysqlDemo在這里需要用到伴生類和伴生對(duì)象,伴生類主要是實(shí)現(xiàn)連接數(shù)據(jù)庫(kù)
class MysqlDemo {
// 連接數(shù)據(jù)庫(kù) 底層原理還是jdbc
//驅(qū)動(dòng)名稱
var driver = "com.mysql.cj.jdbc.Driver"
// 訪問(wèn)MySQL服務(wù)器,通過(guò)3306端口訪問(wèn)mysql數(shù)據(jù)庫(kù)
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
}
}伴生對(duì)象則主要是實(shí)現(xiàn)操作數(shù)據(jù)庫(kù) ,需要先實(shí)現(xiàn)apply方法,主函數(shù)里面創(chuàng)建對(duì)象調(diào)用apply方法,調(diào)用連接方法和釋放資源
object MysqlDemo {
// 實(shí)現(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)建對(duì)象,調(diào)用apply方法
val demo = MysqlDemo()
//導(dǎo)入MySQLUtil包
import MysqlUtil._
//調(diào)用創(chuàng)建連接的方法
demo.conn()
// 調(diào)用釋放資源方法
demo.close(connection)
/**操作數(shù)據(jù)庫(kù)代碼*/
}Util則需要先初始化數(shù)據(jù)庫(kù)連接,注冊(cè)驅(qū)動(dòng),得到數(shù)據(jù)庫(kù)連接,釋放資源
import java.sql.{Connection, DriverManager, PreparedStatement, ResultSet}
object MysqlUtil {
implicit class MysqlOp(obj: MysqlDemo) {
//初始化數(shù)據(jù)連接
private var connection: Connection = _
def conn(): Connection = {
//注冊(cè)driver
Class.forName(obj.driver)
//得到數(shù)據(jù)庫(kù)連接
val connection: Connection = DriverManager.getConnection(obj.url, obj.user, obj.password)
connection
}
//釋放資源
def close(conn: Connection): Unit = {
if (conn != null) {
conn.close()
}
}
}準(zhǔn)備工作已做完下面要實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的增刪查改
//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測(cè)試代碼
//添加數(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測(cè)試代碼
//添加數(shù)據(jù)方法二
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測(cè)試代碼
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("學(xué)號(hào)\t姓名\t年齡\t性別\t手機(jī)號(hào)\t郵箱\t班級(jí)編號(hào)")
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測(cè)試代碼
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測(cè)試代碼
val i: Int = demo.updateStudent(22, "test", 25, "女", "123456789", "369852@qq.com", 2)
if (i == 1) {
println("修改成功")
} else if (i == 0) {
println("修改失敗")
}import java.sql.{Connection, DriverManager, PreparedStatement, ResultSet}
object MysqlUtil {
implicit class MysqlOp(obj: MysqlDemo) {
//初始化數(shù)據(jù)連接
private var connection: Connection = _
def conn(): Connection = {
//注冊(cè)driver
Class.forName(obj.driver)
//得到數(shù)據(jù)庫(kù)連接
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é)號(hào)\t姓名\t年齡\t性別\t手機(jī)號(hào)\t郵箱\t班級(jí)編號(hào)")
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)
}
}
}
}import java.sql.Connection
class MysqlDemo {
// 連接數(shù)據(jù)庫(kù) 底層原理還是jdbc
//驅(qū)動(dòng)名稱
var driver = "com.mysql.cj.jdbc.Driver"
// 訪問(wèn)MySQL服務(wù)器,通過(guò)3306端口訪問(wèn)mysql數(shù)據(jù)庫(kù)
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 {
// 實(shí)現(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)建對(duì)象,調(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("刪除失敗")
}
}
}以上就是“Java和Scala中怎么使用數(shù)據(jù)庫(kù)進(jìn)行增刪查改操作”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。