欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

简单封装Spring的SimpleJdbcTemplate,simplejdbctemplate,将Scala应用于项目存

来源: javaer 分享于  点击 47671 次 点评:202

简单封装Spring的SimpleJdbcTemplate,simplejdbctemplate,将Scala应用于项目存


将Scala应用于项目存在一定的风险。使用Scala更多的是辅助Java,做一些独立性相对较高的模块。例如将某个模块以jar的形式提供服务等等。而Spring是项目中用得最多的开源框架。在Java代码中混合Scala的一个麻烦是:对象经常需要在这两者之间进行转换,而转换是需要消耗资源的。这段代码简单封装Spring的SimpleJdbcTemplate,以提供一个友好的方式访问JDBC。

JDBC操作

import java.sql.ResultSetimport org.springframework.jdbc.core.simple.ParameterizedRowMapperimport org.springframework.jdbc.core.simple.SimpleJdbcTemplateimport scala.collection.mutable.ListBufferobject RichJdbcTemplate {  val jdbc :SimpleJdbcTemplate = ...  def query4List[T](sql: String, process: ResultSet => T, params:Any*):List[T] = {    val buff = new ListBuffer[T]    jdbc.query(        sql,        new ParameterizedRowMapper[String]() {          def mapRow(rs:ResultSet, n: Int) = {            buff += process(rs)            null          }        },        params.toArray    )    buff.toList  }  def update(sql:String, params:Any*) : Int = {    jdbc.update(sql, params.toArray)  }  def batchUpdate(sqls:Array[String]) : Array[Int] = {    jdbc.getJdbcOperations.batchUpdate(sqls)  }  def batchUpdate(sqls:String*) : Array[Int] = {    jdbc.getJdbcOperations.batchUpdate(sqls.toArray)  }  def query4Long(sql: String, params:Any*):Long = jdbc.queryForLong(sql, params.toArray)  def query4Int(sql: String, params:Any*):Int = jdbc.queryForInt(sql, params.toArray)  def query4String(sql: String, params:Any*) = jdbc.queryForObject(sql, classOf[String], params.toArray)}例子:val list = RichJdbcTemplate.query4List[Long](        "select c.id from custom c where c.name=? and c.age=?",        rs => rs.getLong(1),        "abc", 20)val list = RichJdbcTemplate.query4List[Custom](        "select * from custom c where c.age=?",        rs => {          val c = new Custom          c.id = rs.getLong(1)          c.name = rs.getString(2)          c.age = rs.getInteger(3)          c        },        20)
相关栏目:

用户点评