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>

myatbis的一个好的封装的更多相关文章

  1. 对Raphael画图标的一个jquery简单封装

    公司要做一个项目的demo,要求地图上可以插红旗,所以就用到了Raphael. 因为是个demo,所以地图就用了一张图片,效果如下: 所以为了更好的封装一下这个功能,就写了一个简单的插件:jquery ...

  2. 对 JDBC 做一个轻量封装,待完善。。。

    对 JDBC 做一个轻量地封装,顺便复习,熟悉sql,io,util,lang.Reflect等包的使用,泛型的使用,待完善... package com.webproj.utils; import ...

  3. 准备开始,选好第一个C#的封装库

    如今C#做工业图像处理和开发,最多资料和例子的就是Emgu.不过现在人家开始商业收费了,对于我们这些小企业就不是很好了.这里,我要介绍和推荐的是另外一个也同样牛逼的C#封装Opnecv的库,叫做Ope ...

  4. 一个强大的封装好的pdo处理类

    php5.5后就不支持mysql扩展了,也就是说这以后都不能使用msyql_conncet之类的函数了.不过没有关系,pdo比mysql有更多优势,写法也很简单,下面贴出一个来自互联网的pdo处理类. ...

  5. DirectX11 学习笔记4 - 一个完整的封装框架

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3EzNjExMDYzMDY=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  6. 分享一个dapper简单封装

    using System;using System.Data.Common;using System.Linq;using Dapper;using MySql.Data.MySqlClient; p ...

  7. AES和RSA的加密过程通过面向对象的方式写成一个类,封装起来

    # 面向对象的方式 实现加密方法 from Crypto.Cipher import AES from Crypto import Random from binascii import b2a_he ...

  8. Javascript:来一个AJAX封装函数

    前不久换工作了,最近一直在出差,忙得跟狗一样,所以博客都荒废许久了. 最近的工作中涉及到大量的ajax操作,本来该后台做的事也要我来做了.而现在使用的ajax函数是一个后台人员封装的—-但他又是基于 ...

  9. 一个简单的定时器(NSTimer)的封装

    在项目开发中我们有的时候需要用到计时器,比如登录超时,scrollview的滚动等,那么就让我们自己手动的去创建一个类库吧. 1 首先你需要一个向外提供创建的便捷方法. 1.1 这里考虑两种情况,一种 ...

  10. 一个高性能异步socket封装库的实现思路 (c#)

    前言 socket是软件之间通讯最常用的一种方式.c#实现socket通讯有很多中方法,其中效率最高就是异步通讯. 异步通讯实际是利用windows完成端口(IOCP)来处理的,关于完成端口实现原理, ...

随机推荐

  1. 如何在CentOS7上搭建自己的GitLab仓库

    序言 各位好啊,我是会编程的蜗牛,作为java开发者,在团队开发中,一般都是需要使用git及git仓库来管理我们的代码的,这非常方便.我以前在小公司的时候,基本都是一个人开发一个项目,所以也没有怎么接 ...

  2. CH58X/CH57X/V208 Observer(观察者)例程讨论讲解

    使用的是沁恒的CH582M的Observer例程与官方的demo板. 本例程的功能是主机扫描到从机的MAC地址并打印出来. 先对宏定义进行理解讨论. 最大响应扫描数为8,在串口调试助手那里可以看到打印 ...

  3. 【DL论文精读笔记】Image Segmentation Using Deep Learning: A Survey 图像分割综述

    深度学习图像分割综述 Image Segmentation Using Deep Learning: A Survey 原文连接:https://arxiv.org/pdf/2001.05566.pd ...

  4. c++ 三种继承

    继承优先级:private>protect>public ​ 变量或函数函数本身的类型和继承方式,比较,取小的就是继承的访问性 ​ eg: protected x,通过private继承, ...

  5. Sql Server日期转汉字字符串

    以下脚本转至互联网,增加了自己需要的功能并改成了函数的方式 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ================== ...

  6. oracle 内置函数(二)字符函数

    主要函数: 大小写转换函数 获取子字符串函数(字符串截取) 获取字符串长度函数 字符串连接函数 去除子字符串函数 字符替换函数 字符串出现次数 字符串按照特定符号拆分多行 一.大小写转换 1.uppe ...

  7. 【ASP.NET Core】MVC控制器的各种自定义:特性化的路由规则

    MVC的路由规则配置方式比较多,咱们用得最多的是两种: A.全局规则.就是我们熟悉的"{controller}/{action}". app.MapControllerRoute( ...

  8. Django基础笔记5(Session)

    Session cookie:保存在客户端浏览器上的键值对 session:保存在服务器端的数据       保持会话 def index(req): v = req.session.get('use ...

  9. 【Spark】Day01-入门、模块组成、4种运行模式详解及配置、案例实操(spark分析过程)

    一.概述 1.概念 基于内存的大数据分析计算引擎 2.特点 快速.通用.可融合性 3.Spark内置模块[腾讯8000台spark集群] Spark运行在集群管理器(Cluster Manager)上 ...

  10. 关于Mybatis-Plus中update()、updateById()方法的使用及null值的判断

    使用场景说明: 在 Mybatis-Plus 的使用过程中,经常会遇对数据库更新的情况 更新常用方法:update().updateById() 问题:经常会遇见对 null 值的处理,对传入的实体参 ...