zoukankan      html  css  js  c++  java
  • myatbis的一个好的封装

    package com.pj.project4sp;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    import com.pj.project4sp.public4mapper.PublicMapper;
    import com.pj.project4sp.public4mapper.PublicService;
    
    /**
     * 公共Mapper 与 公共Service 
     * @author kong
     *
     */
    @Component
    public class SP {
        
    
        /**
         * 公共Mapper
         */
        public static PublicMapper publicMapper;    
        /**
         * 公共Service
         */
        public static PublicService publicService;                
        
        // 注入 
        @Autowired
        public void setBean(
                PublicMapper publicMapper,
                PublicService publicService
                ) {
            SP.publicMapper = publicMapper;
            SP.publicService = publicService;
        }
        
        
        
        
    }
    package com.pj.project4sp.public4mapper;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Param;
    
    import com.pj.utils.so.SoMap;
    
    /**
     * 公用Mapper,封装一些常见的Mapper操作,避免某些及其简单的逻辑也要写一堆xml方法
     * @author kong
     * 更新于2020-12-1 新增部分方法 
     *
     */
    @Mapper
    public interface PublicMapper {
    
        
        // ------------------------ 一些工具方法 ------------------------
    
        /**
         * 返回上一句SQL插入的自增主键值 
         * @return
         */
        public long getPrimarykey();
    
        
        // ------------------------ 新增SQL相关 ------------------------
    
        
        // ------------------------ 删除SQL相关 ------------------------
    
        /**
         * 根据id删除一条记录 
         * @param tableName 表名字 
         * @param id id值
         * @return
         */
        public int deleteById(
                @Param("tableName")String tableName, 
                @Param("id")Object id
                ); 
    
        /**
         * 根据指定列指定值删除一条记录 
         * @param tableName 表名
         * @param whereName 条件列
         * @param whereValue 条件列值 
         * @return
         */
        public int deleteBy(
                @Param("tableName")String tableName, 
                @Param("whereName") String whereName, 
                @Param("whereValue") Object whereValue
                );
    
        /**
         * 根据id列表批量删除
         * @param tableName 表名字
         * @param ids id列表
         * @return
         */
        public int deleteByIds(
                @Param("tableName")String tableName, 
                @Param("ids")List<?> ids
                ); 
    
        /**
         * 根据指定列指定值删除多条记录 
         * @param tableName 表名
         * @param whereName 条件列名
         * @param whereList 条件列值 
         * @return
         */
        public int deleteByWhereList(
                @Param("tableName")String tableName, 
                @Param("whereName") String whereName, 
                @Param("whereList") List<?> whereList
                );
        
        
        // ------------------------ 修改SQL相关 ------------------------
    
        /**
         * 指定表的指定字段增加指定值,可以为负值 
         * @param tableName 表名字
         * @param columnName 列值 
         * @param num 增加的值
         * @param id id值 
         * @return
         */
        public int columnAdd(
                @Param("tableName") String tableName, 
                @Param("columnName") String columnName, 
                @Param("num") long num,  
                @Param("id") Object id 
                );
    
        /**
         * 指定表的指定字段增加指定值,可以为负值 
         * @param tableName 表名字
         * @param columnName 列名字 
         * @param num 增加的值
         * @param ids id列表  
         * @return
         */
        public int columnAddByIds(
                @Param("tableName") String tableName, 
                @Param("columnName") String columnName, 
                @Param("num") long num,  
                @Param("ids") List<?> ids
                );
    
        /**
         * 指定表的指定字段更新为指定值,根据指定id  
         * @param tableName 表名子
         * @param columnName 列名
         * @param value 值
         * @param id id值 
         * @return
         */
        public int updateColumnById(
                @Param("tableName") String tableName, 
                @Param("columnName") String columnName, 
                @Param("value") Object value, 
                @Param("id") Object id
                );
    
        /**
         * 指定表的指定字段更新为指定值,根据指定id列表 
         * @param tableName 表名子
         * @param columnName 列名
         * @param value 值
         * @param ids id值 
         * @return
         */
        public int updateColumnByIds(
                @Param("tableName") String tableName, 
                @Param("columnName") String columnName, 
                @Param("value") Object value, 
                @Param("ids") List<?> ids
                );
    
        /**
         * 指定表的指定字段更新为指定值, 根据指定列的指定值 
         * @param tableName 表名 
         * @param columnName 列名 
         * @param columnValue 列值 
         * @param whereName 条件列名 
         * @param whereValue 条件列值 
         * @return
         */
        public int updateColumnBy(
                @Param("tableName") String tableName, 
                @Param("columnName") String columnName, 
                @Param("columnValue") Object columnValue, 
                @Param("whereName") String whereName, 
                @Param("whereValue") Object whereValue
                );
    
        /**
         * 指定表的指定字段SoMap集合更新为指定值,根据指定id 
         * @param tableName 表名
         * @param soMap 要修改的列
         * @param id id值
         * @return
         */
        public int updateBySoMapById(
                @Param("tableName") String tableName, 
                @Param("soMap") SoMap soMap,
                @Param("id") Object id
                );
    
        /**
         * 指定表的指定字段SoMap集合更新为指定值,指定列的指定值
         * @param tableName 表名子
         * @param soMap 要修改的列
         * @param whereName 条件列值
         * @param whereValue 条件列值 
         * @return
         */
        public int updateBySoMapBy(
                @Param("tableName") String tableName, 
                @Param("soMap") SoMap soMap,
                @Param("whereName") String whereName, 
                @Param("whereValue") Object whereValue
                );
        
        
        // ------------------------ 查询SQL相关 ------------------------
        
        /**
         * 获取指定表的指定字段值,根据id值 
         * @param tableName 表名
         * @param columnName 列名
         * @param id id值 
         * @return
         */
        public String getColumnById(
                @Param("tableName") String tableName, 
                @Param("columnName") String columnName, 
                @Param("id") Object id
                );
    
        /**
         * 获取指定表的指定字段值,并转化为long,根据id值 
         * @param tableName 表名
         * @param columnName 列名
         * @param id id值 
         * @return
         */
        public long getColumnByIdToLong(
                @Param("tableName") String tableName, 
                @Param("columnName") String columnName, 
                @Param("id") Object id
                );
    
        /**
         * 获取指定表的指定字段值,根据指定条件(whereName=whereValue) 
         * @param tableName 表名
         * @param columnName 列名 
         * @param whereName 条件列名
         * @param whereValue 条件列值 
         * @return
         */
        public String getColumnByWhere(
                @Param("tableName") String tableName, 
                @Param("columnName") String columnName, 
                @Param("whereName") String whereName, 
                @Param("whereValue") Object whereValue
                );
        
        /**
         * 获取指定表的指定字段值列表,并转化为long, 根据指定条件(whereName=whereValue) 
         * @param tableName 表名
         * @param columnName 列名
         * @param whereName 条件列名 
         * @param whereValue 条件列值 
         * @return
         */
        public List<Long> getColumnListToLongByWhere(
                @Param("tableName") String tableName, 
                @Param("columnName") String columnName, 
                @Param("whereName") String whereName, 
                @Param("whereValue") Object whereValue
                );
    
        /**
         * 获取指定表的count数据,根据指定条件(whereName=whereValue)
         * @param tableName 表名
         * @param whereName 条件列名 
         * @param whereValue 条件列值 
         * @return
         */
        public long getCountBy(
                @Param("tableName") String tableName,
                @Param("whereName") String whereName,
                @Param("whereValue") Object whereValue
        );
    
        // ------------------------ 查询集合SQL相关 ------------------------
        
        /**
         * 获取指定表的全部字段全部数据转化为Map
         * @param tableName 表名子 
         * @return
         */
        public List<SoMap> getListMap(@Param("tableName") String tableName);
        
        /**
         * 获取指定表的全部字段全部数据转化为Map, 根据指定条件(whereName=whereValue)
         * @param tableName 表名字 
         * @param whereName 条件列名 
         * @param whereValue 条件列值 
         * @return
         */
        public List<SoMap> getListMapByWhere(
                @Param("tableName") String tableName, 
                @Param("whereName") String whereName, 
                @Param("whereValue") Object whereValue
                );
    
        /**
         * 获取指定表的全部字段全部数据转化为Map, 根据指定条件(id=id) 
         * @param tableName 表名子
         * @param id id值 
         * @return
         */
        public List<SoMap> getListMapById(
                @Param("tableName") String tableName, 
                @Param("id") Object id
                );
    
        
    }
    <?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.pj.project4sp.public4mapper.PublicMapper">
    
        <!-- ======================== 一些工具方法 ======================== -->
        
        <!-- 返回上一句SQL插入的自增主键值 -->
        <select id="getPrimarykey" resultType="long">
            SELECT @@identity 
        </select>
        
        
        <!-- ======================== 新增SQL相关 ======================== -->
        
        
        
        <!-- ======================== 删除SQL相关 ======================== -->
        
        <!-- 删除一条记录,指定表名,id -->
        <delete id="deleteById">
            delete from ${tableName} where id = #{id}
        </delete>
        
        <!-- 根据指定列指定值删除一条记录,// 参数: 表名、条件列表、条件列值  -->
        <delete id="deleteBy">
            delete from ${tableName} where ${whereName} = #{whereValue} 
        </delete>
        
        <!-- 删除一条记录,指定表名,id列表 -->
        <delete id="deleteByIds">
            delete from ${tableName} 
            where id in 
            <foreach collection="ids" item="id" open="(" separator="," close=")">
                #{id}
            </foreach>
        </delete>
        
        <!-- 根据指定列指定值删除多条记录  -->
        <delete id="deleteByWhereList">
            delete from ${tableName} 
            where ${whereName} in 
            <foreach collection="whereList" item="item" open="(" separator="," close=")">
                #{item}
            </foreach>
        </delete>
        
        
        <!-- ======================== 修改SQL相关 ======================== -->
        
        <!-- 指定表的指定字段加num(可以小于0 ),根据指定id -->
        <update id="columnAdd">
            update ${tableName} set 
            ${columnName} = IFNULL(${columnName}, 0) + #{num} 
            where id = #{id};
        </update>
        
        <!-- 指定表的指定字段增加指定值,可以为负值  -->
        <update id="columnAddByIds">
            update ${tableName} set 
            ${columnName} = ${columnName} + #{num} 
            where id in
            <foreach collection="ids" item="id" open="(" separator="," close=")">
                #{id}
            </foreach>
        </update>
    
        <!-- 指定表的指定字段更新为指定值,根据指定id -->
        <update id="updateColumnById">
            update ${tableName} set 
            ${columnName} = #{value} 
            where id = #{id} 
        </update>
    
        <!-- 指定表的指定字段更新为指定值,根据指定id列表 -->
        <update id="updateColumnByIds">
            update ${tableName} set 
            ${columnName} = #{value} 
            where id in 
            <foreach collection="ids" item="id" open="(" separator="," close=")">
                #{id}
            </foreach>
        </update>
    
        <!-- 指定表的指定字段更新为指定值, 根据指定列的指定值 -->
        <update id="updateColumnBy">
            update ${tableName} set 
            ${columnName} = #{columnValue} 
            where ${whereName} = #{whereValue} 
        </update>
        
        <!-- 指定表的指定字段SoMap集合更新为指定值,根据指定id   -->
        <update id="updateBySoMapById">
            update ${tableName} set 
            <foreach collection="soMap.entrySet()" item="value"  index="key" separator=",">
                ${key} = #{value} 
            </foreach>
            where id = #{id} 
        </update>
        
        <!-- 指定表的指定字段SoMap集合更新为指定值,根据指定id   -->
        <update id="updateBySoMapBy">
            update ${tableName} set 
            <foreach collection="soMap.entrySet()" item="value"  index="key" separator=",">
                ${key} = #{value}
            </foreach>
            where ${whereName} = #{whereValue} 
        </update>
        
        
        <!-- ======================== 查询SQL相关 ======================== -->
    
        <!-- 获取指定表的指定字段值,根据id值 -->
        <select id="getColumnById" resultType="String">
            select ${columnName} from ${tableName} 
            where id = #{id}
        </select>
    
        <!-- 获取指定表的指定字段值,并转化为long,根据id值  -->
        <select id="getColumnByIdToLong" resultType="long">
            select ${columnName} from ${tableName} 
            where id = #{id}
        </select>
    
        <!-- 获取指定表的指定字段值,根据指定条件(whereName=whereValue) -->
        <select id="getColumnByWhere" resultType="String">
            select ${columnName} from ${tableName} 
            where ${whereName} = #{whereValue} 
        </select>
    
        <!-- 获取指定表的指定字段值列表,并转化为long, 根据指定条件(whereName=whereValue) -->
        <select id="getColumnListToLongByWhere" resultType="long">
            select ${columnName} from ${tableName} 
            where ${whereName} = #{whereValue} 
        </select>
    
        <!-- 获取指定表的count数据,根据指定条件(whereName=whereValue) -->
        <select id="getCountBy" resultType="long">
            select count(*) from ${tableName}
            where ${whereName} = #{whereValue}
        </select>
    
    
        <!-- ======================== 查询集合SQL相关 ======================== -->
    
        <!-- 获取指定表的全部字段全部数据 -->
        <select id="getListMap" resultType="somap">
            select * from ${tableName} 
        </select>
    
        <!-- 获取指定表的全部字段全部数据转化为Map, 根据指定条件(whereName=whereValue) -->
        <select id="getListMapByWhere" resultType="somap">
            select * from ${tableName} 
            where ${whereName} = #{whereValue} 
        </select>
    
        <!-- 获取指定表的全部字段全部数据转化为Map, 根据指定条件(id=id) -->
        <select id="getListMapById" resultType="somap">
            select * from ${tableName} 
            where id = #{id} 
        </select>
    
        
    
    </mapper>

    后台兼职接单中,联系我微信:wjf88520

    by wujf

    mail:921252375@qq.com

  • 相关阅读:
    酒香也怕巷子深,谈谈前端简历书写技巧。
    谈谈自己对语义化的认识
    服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)
    Python常用库大全
    Python七大原则,24种设计模式
    Python设计模式(4):行为型
    Python设计模式(3):结构型
    Python设计模式(2):创建型
    python设计模式
    数据库的优化
  • 原文地址:https://www.cnblogs.com/wujf/p/15507327.html
Copyright © 2011-2022 走看看