首先用样例类自动实现类构造参数的setter和getter,因为样例类能自动实现其他方法
toString()、equals()、copy()、hashCode()、
伴生对象中的apply()、unaply()
unapply()接受一个对象,从对象中提取出相应的值,主要用于模式匹配中。
case class Userinfo(var userid:Int, var username:String, var birthday:String)
object BaseDao{
//连接数据库获取对象
def getConnection()={
classOf[com.mysql.jdbc.Driver]
DriverManger.getConnection("jdbc:mysql://192.168.192.130/mydemo","root","root")
}
def update(sql:String,params:Array[String])={
var pstat = getConnection().prepareStatement(sql)
for (i:Int <- 0 until params.length{
pstat.setObject(i+1,params(i))
}
pstat.executeUpdate()
}
def query(sql:String,params:Array[String])={
var pstat = getConnection().prepareStatement(sql)
for (i:Int <- 0 until params.length){
pstat.setObject(i+1,params(i))
}
pstat.executeQuery()
}
//将resultset变为List
def resetToList(sql:String,params:Array[String])={
val rs = query(sql,params)
var lst:ListBuffer[Userinfo] = ListBuffer.empty[Userinfo]
while (rs.next()){
lst.append(Userinfo(rs.getInt("userid"),
rs.getString("username"),rs.getString("birthday")
}
lst
}
def main(args:Array[String]):Unit = {
println(resetToList("select * from userinfo",Array()))
}
}