MyBatis实践笔记(1):sql语句需求接收多个参数时,利用bean对象或Map作为方法入参

一、编写select/update/delete语句时,如果需要接收多个参数,有以下两种方式:
  • 方法入参使用Object对象,用对象封装多个sql参数。int updateStockCount(UserStock userStock);
  • 方法入参使用Map集合,以key-value的形式封装sql参数。int updateStock(Map map);

  步骤一:编写配置文件:mapper.xml  

<mapper namespace="com.newbie.dao.UserStockDAO">
    <!-- 使用UserStock对象封装参数,根据账户ID,修改账户余额 -->
    <update id="updateStockCount" parameterType="com.newbie.domain.UserStock">
        update user_stock 
        set count_num = #{countNum,jdbcType=INTEGER}
        where stock_id = #{stockId,jdbcType=VARCHAR}
    </update>
 
    <!-- 使用Map封装参数,根据股票ID,修改股票记录 -->
    <update id="updateStock" parameterType="java.util.Map" >
        update user_stock
        set stock_name= #{stockName,jdbcType=VARCHAR},count_num = #{countNum,jdbcType=INTEGER}
        where stock_id=#{stockId,jdbcType=VARCHAR}
    </update>
</mapper>

  步骤二:编写数据库操作DAO

public interface UserStockDAO {
    //根据股票ID,修改股票记录
    int updateStockCount(UserStock userStock);
 
    //根据股票ID,修改股票记录
    int updateStock(Map map);
}

  步骤三:编写客户端测试代码


public void testUpdateByObject(){
UserStock userStock = new UserStock();
userStock.setStockId("A-0001");
userStock.setcountNum(100);
userStockDAO.updateStockCount(userStock);
}

public void testUpdateByMap(){
Map<String,Object> map = new HashMap<String, Object>();
map.put("stockId","A-0001");
map.put("stockName","简小六");
map.put("countNum",-3900);
userStockDAO.updateStock(map);
}
 
原文地址:https://www.cnblogs.com/newbie27/p/10835373.html