zoukankan      html  css  js  c++  java
  • 【Mybatis】简单的mybatis增删改查模板

    简单的mybatis增删改查模板:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="com.suneee.scn.chtpub.wms.dao.UserDao">
        
        <select id="queryPage" resultType="com.suneee.scn.chtpub.wms.model.UserDO" parameterType="java.util.Map">
              
             SELECT
                    id as id,
                    whid as whid,
                    userid as userid,
                    usercode as usercode,
                    department as department
             FROM
                    sp_users
             WHERE
                    1 = 1
            <if test="whid !=null  and whid != '' ">
                AND whid = #{whid,jdbcType=VARCHAR}
            </if>
    
            <if test="userid !=null  and userid != '' ">
                AND userid = #{userid,jdbcType=VARCHAR}
            </if>
            <if test="usercode !=null  and usercode != '' ">
                AND usercode = #{usercode,jdbcType=VARCHAR}
            </if>
    
            <if test="department !=null  and department != '' ">
                AND department = #{department,jdbcType=VARCHAR}
            </if>
                
            limit #{pageSize,jdbcType=NUMERIC} offset #{start,jdbcType=NUMERIC}
        </select>
        
        
        <select id="getModelTotal" resultType="int" parameterType="java.util.Map">
              
            SELECT
                    count(1)
             FROM
                    sp_users
             WHERE
                    1 = 1
            <if test="whid !=null  and whid != '' ">
                AND whid = #{whid,jdbcType=VARCHAR}
            </if>
    
            <if test="userid !=null  and userid != '' ">
                AND userid = #{userid,jdbcType=VARCHAR}
            </if>
            <if test="usercode !=null  and usercode != '' ">
                AND usercode = #{usercode,jdbcType=VARCHAR}
            </if>
    
            <if test="department !=null  and department != '' ">
                AND department = #{department,jdbcType=VARCHAR}
            </if>
        </select>
    
    
        <select id="checkListIfExist" resultType="com.suneee.scn.chtpub.wms.model.UserDO" parameterType="java.util.Map">
    
             SELECT
                    usercode as usercode
             FROM 
                    sp_users
             WHERE 
                    1=1
            <if test="usercode !=null  and usercode != '' ">
                 AND usercode = #{usercode,jdbcType=VARCHAR}
            </if>
        </select>
        
        
        <insert id="insertModel" parameterType="java.util.Map">
    
             INSERT INTO sp_users
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="whid != null and whid != '' ">
                    whid,
                </if>
                <if test="userid != null and userid != '' ">
                    userid,
                </if>
                <if test="usercode != null and usercode != '' ">
                    usercode,
                </if>
                <if test="department != null and department != '' ">
                    department,
                </if>
    
            </trim>
            <trim prefix="values (" suffix=")" suffixOverrides=",">
            
                <if test="whid != null and whid != '' ">
                    #{whid,jdbcType=VARCHAR},
                </if>
                <if test="userid != null and userid != '' ">
                    #{userid,jdbcType=VARCHAR},
                </if>
                <if test="usercode != null and usercode != '' ">
                    #{usercode,jdbcType=VARCHAR},
                </if>
                <if test="department != null and department != '' ">
                    #{department,jdbcType=VARCHAR},
                </if>
    
            </trim>
        </insert>
        
        
        <delete id="deleteModel" parameterType="java.lang.Integer">
             DELETE FROM 
                   sp_users
             WHERE 
                   id = #{id,jdbcType=NUMERIC}
        </delete>
        
        
        <select id="initQuery" parameterType="java.lang.Integer" resultType="com.suneee.scn.chtpub.wms.model.UserDO">
             SELECT
                    id,
                    whid,
                    userid,
                    usercode,
                    department
             FROM
                    sp_users 
             WHERE
                    1 = 1
             AND    id = #{id,jdbcType=NUMERIC}
             
      </select>
      
      <update id="updateModel" parameterType="java.util.Map">
            UPDATE 
                    sp_users
            SET 
                    whid = #{whid,jdbcType=VARCHAR},
                    <!-- userid = #{userid,jdbcType=VARCHAR}, -->
                    usercode = #{usercode,jdbcType=VARCHAR},
                    department = #{department,jdbcType=VARCHAR}
                    
            WHERE 
                    1=1
            AND    
                    id = #{id,jdbcType=NUMERIC}
    
      </update>
    
    </mapper>

    简单的单表CRUD,parameterType和resultType都可以用实体Model代替,自动映射。

    复杂多表的CRUD,parameterType要用map,在service里面要设置好对应的map K-V值,result一般用自定义的映射resultMap,里面定义了不同表字段对应的一个大Bean的映射,这里不能用resultType了!例如:

    <resultMap id="BaseResultMap" type="com.suneee.scn.chtpub.wms.model.SuppCargoDO">
            <id column="workqid" property="workqid" jdbcType="VARCHAR" />
            <result column="description" property="description" jdbcType="VARCHAR" />
            <result column="itemnumber" property="itemnumber" jdbcType="VARCHAR" />
            <result column="whid" property="whid" jdbcType="VARCHAR" />
            <result column="locationid" property="locationid" jdbcType="VARCHAR" />
            <result column="workstatus" property="workstatus" jdbcType="VARCHAR" />
            <result column="qty" property="qty" jdbcType="NUMERIC" />
            <result column="zone" property="zone" jdbcType="VARCHAR" />
            <result column="employeeid" property="employeeid" jdbcType="VARCHAR" />
            <result column="datedue" property="datedue" jdbcType="VARCHAR" />
        </resultMap>

    service层的代码:

    package com.suneee.scn.chtpub.wms.service;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.alibaba.dubbo.common.json.JSONObject;
    import com.suneee.scn.chtpub.wms.common.util.DictUtil;
    import com.suneee.scn.chtpub.wms.common.util.Page;
    import com.suneee.scn.chtpub.wms.dao.UserDao;
    import com.suneee.scn.chtpub.wms.model.DictionaryDO;
    import com.suneee.scn.chtpub.wms.model.UserDO;
    import com.suneee.scn.chtpub.wms.model.UserSearchDTO;
    
    @Service("userService")
    public class UserService {
    
        @Autowired
        UserDao userDao;
    
        public int updateModel(UserDO bean) {
            Map<String,Object> reqMap = new HashMap<String, Object>();
            reqMap.put("id",bean.getId());
            reqMap.put("whid",bean.getWhid());
            // reqMap.put("userid",bean.getUserid());
            reqMap.put("usercode",bean.getUsercode());
            reqMap.put("department",bean.getDepartment());
            int result = userDao.updateModel(reqMap);
            return result;
        }
    
        public UserDO initQuery(int id) {
            return userDao.initQuery(id);
        }
    
        public void deleteModel(Integer id) {
             Map<String, Object> reqMap = new HashMap<String, Object>();        
             reqMap.put("id",id);
             userDao.deleteModel(reqMap);    
        }
    
        public int insertModel(UserDO bean) {
            Map<String, Object> reqMap = new HashMap<String, Object>();    
            reqMap.put("whid",bean.getWhid());
            reqMap.put("userid",bean.getUserid());
            reqMap.put("usercode",bean.getUsercode());
            reqMap.put("department",bean.getDepartment());
    
            return userDao.insertModel(reqMap);
        }
    
        public List<UserDO> checkListIfExist(JSONObject reqJson) {
            Map<String, Object> reqMap = new HashMap<String, Object>();
            String checkcode = reqJson.getString(DictUtil.User_ID);
    
            reqMap.put("usercode", checkcode);
            return userDao.checkListIfExist(reqMap);
        }
    
        public Page<UserDO> queryPage(Page<UserDO> page, UserSearchDTO bean) {
            int pageNo = page.getPageNo();
            int pageSize = page.getPageSize(); // 页大小
            int start = (pageNo -1)*pageSize;
            
           Map<String,Object> reqMap = new HashMap<String, Object>();
           
            reqMap.put("start", start);
            reqMap.put("pageSize", pageSize);
            
            reqMap.put("whid",bean.getWhid());
            reqMap.put("userid",bean.getUserid());
            reqMap.put("usercode",bean.getUsercode());
            reqMap.put("department",bean.getDepartment());
            
            List<UserDO> listIfExist = userDao.queryPage(reqMap);
            
            page.setResults(listIfExist);
            
            int totalCount = userDao.getModelTotal(reqMap);
            
            page.setTotalCount(totalCount); // 总条数
            int totalPageCount =totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
            page.setPageCount(totalPageCount);
            return page;
            
        }
    }
  • 相关阅读:
    idea使用配置lombok插件
    微服务框架搭建总结点(一):Springboot整合log4j2日志
    git使用笔记:git commit后,如何撤销commit
    SQL Server中char,varchar,nchar, nvarchar的区别
    SQL插入语句插入自增的主键后,如何获取这个新增的主键值
    Linq分组后,再对分组后的每组进行内部排序,获取每组中的第一条记录
    Flutter 笔记
    gch
    JVM内存观察
    mybatis for 循环 中oracle in 条件后 多余1000条处理
  • 原文地址:https://www.cnblogs.com/dflmg/p/6699577.html
Copyright © 2011-2022 走看看