方法一
jdbcTemplate.update("INSERT INTO USER VALUES(?, ?, ?, ?)", new Object[] {user.getId(), user.getName(), user.getSex(), user.getAge()}); 方法二
final String id = user.getId();
final String name = user.getName();
final String sex = user.getSex() + "";
final int age = user.getAge(); jdbcTemplate.update("INSERT INTO USER VALUES(?, ?, ?, ?)",
new PreparedStatementSetter() {
public void setValues(PreparedStatement ps) throws SQLException {
ps.setString(1, id);
ps.setString(2, name);
ps.setString(3, sex);
ps.setInt(4, age);
}
}); 方法三
实现implements RowMapper接口,详见前面的文章
效率上基本没有区别,方法一最终还是要掉方法二来进行实现,只不过在方法一传的参数数组进去,方法一会帮你构造一个PreparedStatementSetter,然后调用方法二进行执行,所以有中间这个构造过程,如果对效率要求特别高,那就用方法二了
方法一源码:
public int update(String sql, Object... args) throws DataAccessException {
return update(sql, newArgPreparedStatementSetter(args));//这个被调用的方法就是方法二了
}
protected PreparedStatementSetter newArgPreparedStatementSetter(Object[] args) {
return new ArgPreparedStatementSetter(args);
}

最新文章

  1. Android 软引用
  2. flask-admin章节三:数据库迁移工具 alembic初步使用
  3. Android--Retrofit+RxJava(二)
  4. sublime 使用技巧
  5. 2014 网选 5012 Dice(bfs模板)
  6. windows内核编程之常用数据结构
  7. SpringMVC使用中遇到的问题总结
  8. 将服务费用DIY到底----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十)[转]
  9. JBOSS批量扫描
  10. Power of Four
  11. Link方式导入java项目
  12. js定时器让动画隔秒运动
  13. [C++]_ELVE_Windows下QT5.12连接MySql8.0解决方案
  14. C#中将ListView数据导出为excel(转载)
  15. ROIAlign, ROIPooling及ROIWarp对比
  16. HTML 09 web 内容与攻击技术
  17. iOS-WKWebView的使用
  18. STM32 --- 什么时候打开复用IO的时钟(比如RCC_APB2Periph_AFIO)
  19. CentOS+Uwsgi+Nginx发布Flask开发的WebAPI
  20. vue 中安装使用sass 报错遇到的问题整理

热门文章

  1. js 获得网页背景色和字体色
  2. JS中常用坐标offset、scroll、client的区别
  3. 常见文本框提示css技巧
  4. echarts使用技巧(一)echarts的图表自适应resize问题、单选、缩放等
  5. TensorFlow 入门 上(自用)
  6. Report Studio中目录结构报表浅析
  7. Kaggle : Display Advertising Challenge( ctr 预估 )
  8. 通过Intel XDK编写跨平台app(一)
  9. 使用javascript开发的视差滚动效果的云彩 极客标签 - 做最棒的极客知识分享平台
  10. MongoDB 在 Mac OSX 平台安装