导包
在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()
}
}