Mybatis 动态传sql可以查询表名,任意表名,不固定字段的个数返回未定义的类型以及增删改...

mysql查询表名:

SELECT table_name FROM information_schema.tables WHERE table_schema='sell' AND table_type='base table';

查询表中的字段:

SELECT column_name FROM information_schema.columns WHERE table_schema='sell' AND table_name='seller_info'

SpringBoot 中mybatis 使用map的接收返回类型的时候为空的字段 不反回在配置文件中

mybatis.configuration.call-setters-on-nulls=true

今天做项目,遇到的问题就是需求修改数据表的记录,而且字段名都不是固定的,也就是说是需要通过参数传入的,

mybatis动态传表名和字段不规定个数进行条件查询使用map返回

也可以进行动态的表名字段 进行增删改

注意:表名要用${}以为表名不需要预编译

dao层:

  List<Map<String, String>> getTableInfo(@Param("tableName") String tableName, @Param("cloums") List<Cloum> cloums);int addTableInfo(@Param("tableName") String tableName, @Param("cloums") List<Cloum> cloums);int updateTableINfo(@Param("tableName") String tableName, @Param("cloums") List<Cloum> cloums,@Param("id") String id);int delTableInfo(@Param("tableName") String tableName, @Param("ids") List<String> id);

 

 mapper:

 <select id="getTableInfo" resultType="map">SELECT * FROM ${tableName} where 1=1<if test="cloums != null"><foreach collection="cloums" item="item" index="index" open="and" separator="and">${item.cloum}=#{item.val}</foreach></if></select><insert id="addTableInfo" parameterType="com.cmbchina.ccd.itpm.entity.Cloum">insert into ${tableName}<foreach collection="cloums" item="item" index="index" open="(" separator="," close=")">${item.cloum}</foreach>VALUES<foreach collection="cloums" item="item" index="index" open="(" separator="," close=")">#{item.val}</foreach></insert><delete id="delTableInfo" parameterType="java.lang.String">delete from ${tableName}where id IN<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">#{item}</foreach></delete><update id="updateTableINfo" parameterType="com.cmbchina.ccd.itpm.entity.Cloum">update ${tableName}set<if test="cloums != null"><foreach collection="cloums" item="item" index="index" separator=",">${item.cloum}=#{item.val}</foreach></if>where id = #{id}</update>

 

  这里我是使用一个实体类接收字段和字段值进行传参

Cloum实体类:
public class Cloum {private String cloum;private String val;public String getCloum() {return cloum;}public void setCloum(String cloum) {this.cloum = cloum;}public String getVal() {return val;}public void setVal(String val) {this.val = val;}
}

  

 这样就可以了,本人已测试成功!

转载于:https://www.cnblogs.com/blackCatFish/p/10957884.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

As3.0与java数据类型的比较总结

As3.0与java数据类型的比较总结 1. 在As3.0中所有的数据类型都是对象&#xff0c;都有自己的方法和属性&#xff1b; Java中的基本数据类型&#xff0c;其采取和C和C相同的方法。也就是不用new来创建变量&#xff0c;而是创建一个并非是引用的“自动”变量。这个变量直接存储…

php透明颜色的代码,PHP imagecolorallocatealpha - 为一幅图像分配颜色和透明度

PHP imagecolorallocatealpha - 为一幅图像分配颜色和透明度imagecolorallocatealpha — 为一幅图像分配颜色和透明度。语法int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )imagecolorallocatealpha() 的行为和 imagecolor…

C语言goto关键字—尽量少用

一般来说&#xff0c;编码的水平与goto 语句使用的次数成反比。有的人主张慎用但不禁用goto语句&#xff0c;但我主张禁用。关于goto 语句的更多讨论可以参看Steve McConnell 的名著《CodeComplete. Second Edition》。 禁用goto 语句。自从提倡结构化设计以来&#xff0c;goto…

C#中使用Oracle 存储过程笔记

C#中使用Oracle 存储过程笔记1. 调用包含out/ in out类型参数的存储过程 存储过程: CREATE OR REPLACE PROCEDURE "SITE_EDITSITEDATAEXIST" (id_ number,name_ varchar2,httpRoot_ varchar2,flag out integer )//out 只具备输出功能 in out 为输入/输出型astempNum …

php网页生命周期函数,PHP的生命周期

PHP的生命周期php本身的生命周期是在命令行执行php test.php程序的生命周期(也就是cli)整个过程如下&#xff1a;执行php test.php调用每个扩展的模块初始化程序请求test.php程序调用每个扩展的请求初始化程序执行test.php程序调用每个扩展的请求关闭程序释放内存等清除工作调用…

为什么需要做归一化或者标准化

为什么需要做归一化或者标准化 一句话解释就是为了让我们求解loss最低值的过程中更加的平稳和缓&#xff0c;容易收敛。 具体解释可以看这里: 特征工程中的「归一化」有什么作用&#xff1f; - 忆臻的回答 - 知乎https://www.zhihu.com/question/20455227/answer/197897298 用我…

Windows on Device 项目实践 4 - 智能风扇制作

在前面的文章中&#xff0c;我们已经学习并且利用Intel Galileo开发板和Windows on Device制作了火焰报警器、感光灯和PWM调光灯。在这个项目中&#xff0c;我们来利用温度传感器和直流电机&#xff0c;完成一个简单的智能风扇的制作。 1. 温度传感器 LM35 是很常用且易用的温度…

Linux系统信息查看命令大全

系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所…

php接口异常,api接口异常怎么办

异常&#xff1a;在程序开发过程中出现的不正常情况&#xff0c;就是异常。比如除数是0&#xff0c;参数为null&#xff0c;调用参数的成员变量或者方法&#xff0c;数组下标越界。异常分为两大类型&#xff1a;(1)Exception&#xff1a;程序员可以解决的&#xff1a;空指针&am…

并发编程5-同步器

Synchronizer 控制多个线程的流程&#xff0c;比如线程执行到某一个点的时候是等待还是通过。 JDK中自带了信号量&#xff0c;关卡&#xff0c;闭锁闭锁CoutDownLatch 达到最终状态前是关闭的&#xff0c;所有线程在此阻塞&#xff0c; 达到最终状态后开放&#xff0c;并且不可…

RE validation in Java EE

pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象&#xff0c;你必须首先调用其公共静态编译方法&#xff0c;它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。 Pattern类中有两个最常用的方法&#xff1…

Apache Rewrite 规则详解

1、Rewrite规则简介&#xff1a; Rewirte主要的功能就是实现URL的跳转&#xff0c;它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess) 两种方式。如果要想用到rewrite模块&#xff0c;必须先安装或加载rewrite模块。方法有两种一种是编译apach…

php源码编程,10个小技巧让你做好php源码编程

PHP是目前使用最广泛的网站编程语言&#xff0c;也是今后发展的一大趋势。有很多站长或多或少掌握一些php编程方法&#xff0c;下面小编就介绍十点实用的php编码技巧。1、cho比print 快&#xff0c;并且使用echo的多重参数(译注&#xff1a;指用逗号而不是句点)代替字符串连接&…

iPhone与Android手机 各个型号的UserAgent

微信端模拟&#xff1a;Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 MicroMessenger/5.2.380■iPhone●iOSMozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/…

动态调用WCF服务[转]

原文地址&#xff1a;http://blog.csdn.net/castlooo/archive/2010/05/06/5562619.aspx客户端调用wcf &#xff0c;有时需要动态的调用服务端的WCF中的方法&#xff0c;本方法&#xff0c;反射wcf 的接口&#xff0c;动态调用接口中的方法。 主要为&#xff0c;动态绑定&#x…

java 正规 忽略,java-正则表达式查找变量并忽略方法

我正在尝试编写一个正则表达式,以查找给定一段JavaScript代码中的所有变量(并且只有变量,完全忽略方法).实际的代码(执行regex的代码)是用Java编写的.现在,我有这样的事情&#xff1a;Matcher matcherPattern.compile(".*?([a-z]\w*?).*?").matcher(string);while…

【吐槽】博客园新的原创文章在搜索引擎的排名不及转载的站点

最近写博客比较多&#xff0c;但发现文章被一些网站转载后&#xff0c;排名比博客园的链接还要高&#xff0c;有些搜索引擎甚至连博客园的链接都没有&#xff0c;坑爹&#xff0c;坑爹。。。 以前博客园的网友也遇到过类似的情况&#xff0c;也分享过一些防转载的经验&#xff…

Qt之程序发布以及打包成exe安装包

一、简述 Qt项目开发完成之后&#xff0c;需要打包发布程序&#xff0c;而因为用户电脑上没有Qt配置环境&#xff0c;所以需要将release生成的exe文件和所依赖的dll文件复制到一个文件夹中&#xff0c;然后再用 Inno Setup打包工具 打包成一个exe安装包&#xff0c;就可以发布了…

把ASP应用中的Session传递给asp.net应用

ASP.NET APPLICATION要使用原来的ASP用户系统&#xff0c;于是问题出现了&#xff0c;ASP APPLICATION怎样才能让用户登录的状态及用户信息在ASP.NET中依然有效呢。于是我们考虑用构造FORM来自动提交传递ASP应用中的Session变量。例子如下ASP应用URL为http://127.0.0.1/asp/&am…

linux下生成key

linux下生成key 使用public/private key让putty(ssh)自动登录&#xff08;以及linux上使用密钥做ssh自动登陆&#xff09; 方法一&#xff1a;使用puttygen.exe 第一步&#xff1a;生成密匙 运行puttygen.exe&#xff0c;选择需要的密匙类型和长度&#xff0c;使用默认的SSH2(R…