`
java-admin
  • 浏览: 1381799 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

Spring JdbcTemplate 查询方法中的RowMapper实现汇总

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

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第二个案例

 

 

package com.flmusic.cu.dao.jdbc;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;


import org.springframework.jdbc.core.PreparedStatementCallback;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

import com.flmusic.cu.compere.CompereInfoBean;
import com.flmusic.cu.dao.CommendCompereDAO;


public class CommendCompereDAOJdbcImpl extends JdbcDaoSupport implements CommendCompereDAO{
/**
* 新增推荐主持人 状态:0--未审核;1--审核
* @param userId
*/
public void addCommendCompere(final Integer userId){
  
   StringBuffer sql = new StringBuffer(200);
   //新增推荐主持人
   sql.append("insert into u_commend_compere_info(I64UserID,status) values(?,0)");
   this.getJdbcTemplate().execute(sql.toString(),new PreparedStatementCallback(){
     public Object doInPreparedStatement(PreparedStatement ps)throws SQLException {
        ps.setInt(1, userId);
        ps.execute();
        return null;
     }
   });
   //更新推荐状态--已推荐(1)
   updateCommendFlag(userId,1);
}
/**
* 查询推荐主持人列表
* @return
*/
public List findCommendCompereList(Integer agentId){  
   StringBuffer sql = new StringBuffer(200);
   sql.append("select uc.compereName,uc.ilevel,com.I64UserID,com.status,a.agentName ");
   sql.append(" from u_commend_compere_info com ,u_compere_info uc left join webcu.dbo.agent a on uc.agentId=a.agentId ");
   sql.append("where com.I64UserID = uc.I64UserID ");
  
   if (agentId != null){
    sql.append(" and uc.agentId=").append(agentId);
   }
   List<CompereInfoBean> list = this.getJdbcTemplate().query(sql.toString(), new RowMapper(){
    public Object mapRow(ResultSet rs,int index) throws SQLException{
     CompereInfoBean bean = new CompereInfoBean();
     bean.setUserId(rs.getInt("I64UserID"));
     bean.setCompereName(rs.getString("compereName"));
     bean.setLevel(rs.getInt("ilevel"));
     bean.setCommendStatus(rs.getInt("status"));
     bean.setAgentName(rs.getString("agentName"));
     return bean;
    }
   });
   return list;
}
/**
* 更新推荐状态
* @param userId
* @param flag
*/
private void updateCommendFlag(final Integer userId,final int flag){
   //更新主持人的是否推荐状态
   StringBuffer sql = new StringBuffer(200);
   sql.append("update u_compere_info set commendFlag=? where I64UserID=?");
   this.getJdbcTemplate().execute(sql.toString(),new PreparedStatementCallback(){
     public Object doInPreparedStatement(PreparedStatement ps)throws SQLException {
        ps.setInt(1, flag);
        ps.setInt(2, userId);
        ps.execute();
        return null;
     }
   });
}

/**
* 根据室主Id查询主持人对象列表
*
*
*/
public List findCommendCompereListByHostId(Integer hostId) {
   // TODO Auto-generated method stub
   StringBuffer sql = new StringBuffer(200);
   sql.append("select a.I64UserID,a.compereName,a.iLevel from flMusicUserDB.dbo.u_compere_info a ");
   sql.append(" where a.compereNumber in (select compereNumber from RoomDB.dbo.Host_Compere_Mapping where hostNumber="+hostId+") ");
  
   List<CompereInfoBean> list = this.getJdbcTemplate().query(sql.toString(), new RowMapper(){
    public Object mapRow(ResultSet rs,int index) throws SQLException{
     CompereInfoBean bean = new CompereInfoBean();
     bean.setUserId(rs.getInt("I64UserID"));
     bean.setCompereName(rs.getString("compereName"));
     bean.setLevel(rs.getInt("ilevel"));
     return bean;
    }
   });
   return list;
}}

分享到:
评论

相关推荐

    Spring JdbcTemplate 常用方法整理

    本文将深入探讨Spring JdbcTemplate的常用方法,并结合提供的`JsonBean.java`和`JdbcUtils.java`文件,来理解其在实际应用中的使用。 首先,JdbcTemplate的核心功能在于它提供了一系列的方法来执行SQL语句,包括...

    Spring JdbcTemplate查询实例

    在本实例中,我们将深入探讨Spring JdbcTemplate的查询功能及其在实际应用中的使用。 首先,Spring JdbcTemplate通过提供一系列的模板方法,如`queryForList`、`queryForObject`、`execute`等,使得执行SQL查询变得...

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储过程,然后编写 Java 代码使用 Spring JdbcTemplate 调用...

    spring-jdbcTemplate实例工程

    1. **JdbcTemplate对象**:这是Spring JdbcTemplate的核心,它包含了执行SQL语句的所有方法,如update()用于更新,query()用于查询,insert()用于插入等。 2. **参数绑定**:JdbcTemplate支持多种方式的参数绑定,...

    SpringJdbcTemplate封装工具类

    SpringJdbcTemplate是Spring框架中用于简化Java数据库访问的工具,它是Spring JDBC模块的核心。这个封装工具类的出现是为了提供一种更简洁、易于使用的接口来执行SQL操作,减轻开发者处理数据库连接、事务管理以及...

    基于注解的Spring JdbcTemplate

    Spring JdbcTemplate提供了一个面向对象的接口,用于执行SQL查询、更新和存储过程,避免了直接与JDBC API打交道的繁琐工作。它通过异常处理、事务管理以及结果集的自动处理,简化了数据库访问。基于注解的Spring ...

    Spring框架JdbcTemplate类中查询方法介绍

    Spring 框架 JdbcTemplate 类中查询方法介绍 JdbcTemplate 是 Spring 框架中 org.springframework.jdbc.core 包提供的 JDBC 模板类,它是核心类,其他模板类都是基于它封装完成的。JdbcTemplate 类主要提供四类方法...

    使用Spring的JdbcTemplate实现分页功能

    使用Spring的JdbcTemplate实现分页功能

    spring JdbcTemplate query方法使用示例

    spring JdbcTemplate query方法使用示例,欢迎下载借鉴

    模仿spring jdbcTemplate的实现

    模仿spring jdbcTemplate的粗略实现,只有很小的参考价值,如果是java初学者可以使用这个封装好的工具进行数据库操作,只需要在db.properties里配置好driver,url等信息

    Spring JdbcTemplate

    **Spring JdbcTemplate**是Spring框架中的一个核心组件,主要用于简化Java数据库访问。它提供了一种模板化的方式来执行SQL语句,使得开发人员可以避免编写大量的重复代码,专注于业务逻辑,而不是底层的数据库交互...

    Spring JDBCTemplate连接池jar包

    在Spring JDBCTemplate中,连接池扮演着关键角色。连接池管理数据库连接,确保在需要时可以快速提供一个已建立的连接,而不是每次都新建。这在高并发环境下尤其重要,因为它减少了数据库连接创建和关闭的开销。...

    Spring JdbcTemplate例子

    Spring JdbcTemplate是Spring框架中的一个核心组件,主要用来简化数据库操作。它提供了一种模板方法设计模式,将SQL语句的执行与结果处理进行了抽象,使得开发者可以更加专注于业务逻辑,而无需关心底层数据访问的...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    ### Spring中的JdbcTemplate #### JdbcTemplate概述 JdbcTemplate是Spring框架提供的一种用于简化JDBC编程的对象。通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了...

    Spring JdbcTemplate api

    值得注意的是,虽然有文档提到`JdbcTemplate`提供了`execute(String sql, Object[] params)`方法,但实际上在Spring 2.x版本中并不存在这样的方法签名。 #### 批量更新 当需要进行批量更新操作时,`JdbcTemplate`...

    strut2+spring+springjdbctemplate做的简易登录系统

    Struts2、Spring和Spring JDBC Template是Java Web开发中常用的三个框架,它们分别负责不同的职责。Struts2作为MVC(Model-View-Controller)框架,主要处理前端请求和业务逻辑;Spring则是一个全面的后端框架,提供...

    利用spring的jdbcTemplate处理blob、clob

    spring 中对大数据的处理,包括clob,blob的数据。比之jdbc下简便很多。

    Druid数据库连接池的SpringJDBCTemplate所需的jar包

    Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,...

    使用Spring JDBCTemplate进行增删改查curd操作

    在Spring框架中,JdbcTemplate是用于简化数据库操作的重要工具,它是Spring JDBC模块的一部分。通过使用JdbcTemplate,开发者可以避免编写大量的重复代码,如手动管理连接、处理结果集等,从而专注于业务逻辑。本文...

    Spring 学习 JdbcTemplate,模板模式,回调

    在Spring中,JdbcTemplate就是一个典型的模板类,它实现了数据库操作的基本流程,如创建Connection、PreparedStatement、处理结果集等。用户可以通过扩展或自定义模板方法来实现特定的数据库操作逻辑。 **3. 回调...

Global site tag (gtag.js) - Google Analytics