1. 实现一、在内部建立内联类实现RowMapper接口
  2. package hysteria.contact.dao.impl;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Types;
  6. import java.util.List;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import org.springframework.jdbc.core.RowMapper;
  9. import hysteria.contact.dao.ItemDAO;
  10. import hysteria.contact.domain.Item;
  11. public class ItemDAOImpl implements ItemDAO {
  12. private JdbcTemplate jdbcTemplate;
  13. public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
  14. this.jdbcTemplate = jdbcTemplate;
  15. }
  16. public Item insert(Item item) {
  17. String sql = "INSERT INTO items(user_id,name,phone,email) VALUES(?,?,?,?)";
  18. Object[] params = new Object[]{item.getUserId(),item.getName(),item.getPhone(),item.getEmail()};
  19. int[] types = new int[]{Types.INTEGER,Types.VARCHAR,Types.CHAR,Types.VARCHAR};
  20. jdbcTemplate.update(sql,params,types);
  21. return item;
  22. }
  23. public Item update(Item item) {
  24. String sql = "UPDATE items SET name = ?, phone = ?, email = ? WHERE id = ?";
  25. Object[] params = new Object[] {item.getName(),item.getPhone(),item.getEmail(),item.getId()};
  26. int[] types = new int[] {Types.VARCHAR,Types.CHAR,Types.VARCHAR,Types.VARCHAR,Types.INTEGER};
  27. jdbcTemplate.update(sql,params,types);
  28. return item;
  29. }
  30. public void delete(Item item) {
  31. String sql = "DELETE FROM items WHERE id = ?";
  32. Object[] params = new Object[] {item.getId()};
  33. int[] types = new int[]{Types.INTEGER};
  34. jdbcTemplate.update(sql,params,types);
  35. }
  36. public Item findById(int id) {
  37. String sql = "SELECT * FROM items WHERE id = ?";
  38. Object[] params = new Object[] {id};
  39. int[] types = new int[] {Types.INTEGER};
  40. List items = jdbcTemplate.query(sql,params,types,new ItemMapper());
  41. if(items.isEmpty()){
  42. return null;
  43. }
  44. return (Item)items.get(0);
  45. }
  46. public List<Item> findAll() {
  47. String sql = "SELECT * FROM items";
  48. return jdbcTemplate.query(sql,new ItemMapper());
  49. }
  50. public List<Item> findAllByUser(int user_id) {
  51. String sql = "SELECT * FROM items WHERE user_id = ?";
  52. Object[] params = new Object[]{user_id};
  53. int[] types = new int[]{Types.INTEGER};
  54. List items = jdbcTemplate.query(sql,params,types,new ItemMapper());
  55. return items;
  56. }
  57. protected class ItemMapper implements RowMapper {
  58. public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
  59. Item item = new Item();
  60. item.setId(rs.getInt("id"));
  61. item.setUserId(rs.getInt("user_id"));
  62. item.setName(rs.getString("name"));
  63. item.setPhone(rs.getString("phone"));
  64. item.setEmail(rs.getString("email"));
  65. return item;
  66. }
  67. }
  68. }

Spring JdbcTemplate 查询方法中的RowMapper实现汇总的更多相关文章

  1. Spring JdbcTemplate 查询结果集Map反向生成Java实体(转)

    原文地址:Spring JdbcTemplate 查询结果集Map反向生成Java实体 以前写过一篇文章吐槽过Spring JdbcTemplate的queryForList方法(参见:http:// ...

  2. Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的?(转)

    原文地址:Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的? 原始讨论组:用Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的 ...

  3. Spring JdbcTemplate查询实例

    这里有几个例子向您展示如何使用JdbcTemplate的query()方法来查询或从数据库提取数据.整个项目的目录结构如下: 1.查询单行数据 这里有两种方法来查询或从数据库中提取单行记录,并将其转换 ...

  4. [转] spring JdbcTemplate 查询,使用BeanPropertyRowMapper

    [From] http://blog.csdn.net/limenghua9112/article/details/45096437 应用: 使用Spring的JdbcTemplate查询数据库,获取 ...

  5. [转]Spring JdbcTemplate 查询分页

    原文:http://blog.csdn.net/xiaofanku/article/details/4280128 现在进行的项目由于数据库的遗留原因(设计的不堪入目)不能用hibernate.所以用 ...

  6. Spring Data 查询方法的规则定义(五)

    有句话这样说  欲练神功  挥刀自宫  请亲们先回到第一个  从Spring data 介绍 开始看  搭好环境 跟着步伐一块走 Spring Data 的方法必须严格按照它的规范进行编写,如果写错了 ...

  7. 将前端请求中的数据绑定到Spring MVC响应方法中参数的四种方法

    一.映射URL绑定的占位符到方法参数 1.方法 使用@PathVariable注解 2.代码示例 a.接收请求方法 @RequestMapping(value = "/deleteInfo/ ...

  8. Spring Data Jpa (三)定义查询方法

    本章详细讲解如何利用方法名定义查询方法(Defining Query Methods) (1)定义查询方法的配置方法 由于Spring JPA Repository的实现原理是采用动态代理的机制,所以 ...

  9. Spring JdbcTemplate操作小结

    Spring 提供了JdbcTemplate 来封装数据库jdbc操作细节: 包括: 数据库连接[打开/关闭] ,异常转义 ,SQL执行 ,查询结果的转换 使用模板方式封装 jdbc数据库操作-固定流 ...

随机推荐

  1. JS 语言基础

    两个变量 相加 var s="今天下雨了"; var i=10; alert(i+s); 这里的i+s是拼接的意思   显示出来是  今天下雨了10 假设我改  s="2 ...

  2. ABC3D创客项目:小风扇

    风扇是我们纳凉的好帮手,然而大多的风扇都体积庞大不易携带.利用电池进行供电能让风扇变得更加便捷,下面我们利用电池供电的原理制作出一个风扇. 工作原理: 这个OK风扇的主要能源来自于后面的7号电池,风扇 ...

  3. Dijkstra算法——单源最短路算法

    一.介绍 迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他各个节点的最短路径. 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止. 适用于有 ...

  4. 如何 Scale Up/Down Deployment?【转】

    伸缩(Scale Up/Down)是指在线增加或减少 Pod 的副本数.Deployment nginx-deployment 初始是两个副本. k8s-node1 和 k8s-node2 上各跑了一 ...

  5. 关于CSS3三角的实现

    1,向上的三角 ;;           ;;           </html> 3,向左的三角 ;;           </html> 4,向右的三角 ;;        ...

  6. shrio 权限管理filterChainDefinitions过滤器配置

    /** * Shiro-1.2.2内置的FilterChain * @see ============================================================= ...

  7. false - (失败的)什么都不做

    总览 (SYNOPSIS) false [忽略命令行参数] false OPTION 描述 (DESCRIPTION) 程序 结束 时, 产生 表示 失败 的 状态码. 下列的 选项 没有 简写 形式 ...

  8. python已安装好第三方库,pycharm import时仍标红的解决办法

    pip install pymysql之后导入import pymysql时候标红 发现 pymysql下方还是标红,不能正常导入 可以试用一下以下的办法 解决办法: 首先打开 Settings找到P ...

  9. Linux内核漏洞利用-环境配置(转)

    实验环境: Ubuntu-14.04.1 x86 linux-2.6.32.1 busybox-1.27.2 qemu 0x00 安装qemu sudo apt-get install qemu qe ...

  10. vsftp配置日志及其启用本地时间

    vsftp配置日志及其启用本地时间 1. 启用vsftp日志 xferlog_enable=YES xferlog_std_format=YES xferlog_file=/var/log/xferl ...