Mybaits自定义SQL

最近有个同事要包装一个可以执行sql语句的功能用的是mybatis

最开始他想到的方案是拿到数据库连接再执行sql语句。

后来出了某些错误来问我,为了寻求比较快的解决方法于是我就试试了下下面的方法。


首先在Mapper添加 

<select id="select" resultMap="map" parameterType="java.lang.String" >
    ${_parameter}
  </select>

 parameterType为String的话  参数名就必须写_parameter

 resultMap 返回类型是map型

这里的原理就是通过传入字符串来执行sql,当然了上面这个只能执行select 如果要执行插入删除更新就另外写个

大家可以封装个函数来判断是添加修改删除来执行对应的Mapper

然后在对应的dao接口添加


List<map> select(String sql);

最后就可以得到自定义sql语句查询的结果了。


@Resource  
  private MyMapper myMapper;

....

List<map> result =myMapper.select("select * from user");


OK最后就可以用其他工具类将map转成你的对象或者转成JsonString 再转成对象数组。



  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.pactera.domain.report.BasReport">

    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    <result column="SQL" jdbcType="CLOB" property="sql" />

  </resultMap>



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

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

相关文章

Beta 冲刺 (7/7)

团队信息 队名&#xff1a;爸爸饿了组长博客&#xff1a;here作业博客&#xff1a;here组员情况 组员1&#xff08;组长&#xff09;&#xff1a;王彬 过去两天完成了哪些任务 协助完成安卓端的整合完成安卓端的美化协助制作宣传视频 接下来的计划 & 还剩下哪些任务 I am d…

类的转换函数调用的优先级与是否用const修饰的关系

P415 C Primer Plus (第六版&#xff09;(待解决~~知道原理的同学请留言&#xff0c;多谢~~&#xff09; #include <iostream>using namespace std; class Cp{private:   int a;   double b;public:   Cp()   {     a 1;     b 2.2;   } operator in…

Java Web 学习与总结(一)Servlet基础

配置环境&#xff1a;https://www.cnblogs.com/qq965921539/p/9821374.html 简介&#xff1a; Servlet是Sun公司提供的一种实现动态网页的解决方案&#xff0c;在制定J2EE时引入它作为实现了基于Java语言的动态技术&#xff0c;目前流行的Web框架基本都基于Servlet技术&#xf…

堪称经典

程序员作为高智商、高收入、高压力群体&#xff0c;经常会有各种自嘲&#xff0c;而且还天生携带段子手基因。不信看看下面这些段子&#xff0c;一般人哪能懂&#xff01; 1、杀一个程序员不需要用枪&#xff0c;改三次需求就可以了 2、程序员退休后决定练习书法&#xff0c;于…

【洛谷 P1659】 [国家集训队]拉拉队排练(manacher)

题目链接 马拉车简单膜你 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN 11000010; const int MOD 19930726; char b[MAXN], a[MAXN << 1]; int hw[MAXN << 1], ans 1, n, c[MAXN]; #defi…

Judy Beta 第三天

概述 前端部分对于打包的流程以及相关 package.json 的配置都已经比较熟悉了&#xff0c;目前主要负责对新实现的 feature 做测试&#xff0c;以及参考 DAP 为后端明确数据交换的格式及参数内容等。 后端部分按照更新的 wiki 实现了变量展开&#xff0c;并且根据 DAP 的协议流程…

oracle表空间不足

oracle表空间不足&#xff0c;一般有两个原因&#xff1a;一&#xff0c;原表空间太小&#xff0c;没有自增长&#xff1b;二&#xff0c;表空间已自增长&#xff0c;而且表空间也已足够大&#xff0c;对于这两种原因分别有各自的解决办法。 【检查原因】 1、查看表在那个表空…

python学习中遇到的问题

2019独角兽企业重金招聘Python工程师标准>>> def contract_str():index 8db_size 8new_table_name b_str(index & (db_size-1))print new_table_name ImportError: No module named mysql.connector import mysql.connector as sql_connector Python保存时提…

Arcgis 使用ArcToolbox实现数据统计

在ArcMap中打开ArcToolbox&#xff0c; ->Data Managerment Tools ->General ->Add你需要统计的所有数据转载于:https://www.cnblogs.com/CoffeeEddy/p/10161863.html

oracle分区索引及循环插入

表可以按range、hash、list分区&#xff0c;表分区后&#xff0c;其上的索引和普通表上的索引有所不同&#xff0c;oracle对于分区表上的索引分为2类&#xff0c;即局部索引和全局索引&#xff0c;下面分别对这2种索引的特点和局限性做个总结。 局部索引local index 1.局部索引…

classloader.getresources() 介绍

转载自&#xff1a; https://www.cnblogs.com/bhlsheji/p/4095699.html ◆普通情况下,我们都使用相对路径来获取资源,这种灵活性比較大. 比方当前类为com/bbebfe/Test.class 而图像资源比方sample.gif应该放置在com/bbebfe/sample.gif 而假设这些图像资源放置在icons文件夹下,则…

Anti-Aliasing SSAA MSAA MLAA SRAA 简介

http://blog.csdn.net/codeboycjy/article/details/6312758 前两天在浏览游民星空的时候&#xff0c;小编居然在文章中挂了一篇技术文章&#xff0c;是关于SRAA的。对于AA的了解很少&#xff0c;正好入职之前还有几天的空闲时间&#xff0c;所以就这个机会把AA的一些基本算法简…

MyBatis多数据源配置(读写分离)

MyBatis多数据源配置(读写分离) 首先说明&#xff0c;本文的配置使用的最直接的方式&#xff0c;实际用起来可能会很麻烦。 实际应用中可能存在多种结合的情况&#xff0c;你可以理解本文的含义&#xff0c;不要死板的使用。 多数据源的可能情况 1.主从 通常是MySQL一主多…

UI简单工作

UI用户界面 需求——效果图——风格设计——高保证效果——html 网页的宽度屏幕的宽度-纵向滚动条的宽度 企业网站一般是1280 根据百度流量研究所 目前我们的网页注主要是1024和1200 这样的宽度符合大体市场 首屏高度。 首屏的概念来源于出版领域 报纸折叠后贩卖&…

MySQL分库分表总结

MySQL分库分表总结&#xff1a; 单库单表 &#xff1a; 单库单表是最常见的数据库设计&#xff0c;例如&#xff0c;有一张用户(user)表放在数据库db中&#xff0c;所有的用户都可以在db库中的user表中查到。 单库多表 &#xff1a; 随着用户数量的增加&#xff0c;user表的数…

3章 RxJava操作符

本篇文章已授权微信公众号 YYGeeker 独家发布转载请标明出处 CSDN学院课程地址 RxJava2从入门到精通-初级篇:edu.csdn.net/course/deta…RxJava2从入门到精通-中级篇:edu.csdn.net/course/deta…RxJava2从入门到精通-进阶篇:edu.csdn.net/course/deta…RxJava2从入门到精通-源码…

virtualbox 使用

实现文件拖拽功能 1、设备 -- 安装增强功能 -- /bin/sh VboxLinuxaddition.run -- reboot 2、设备 -- 拖放 -- 双向 3、虚拟机 -- 设置 -- 存储 -- 控制器&#xff1a;SATA -- 勾选 使用主机输入输出&#xff08;I\O 缓存&#xff09; 4、虚拟机硬盘 -- 勾选固态驱动器 转载于…

linux安装mysql 5.6.33

.到MySQL官网下载mysql编译好的二进制安装包&#xff0c;在下载页面Select Platform:选项选择linux-generic&#xff0c;然后把页面拉到底部&#xff0c;64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit)&#xff0c;下载后文件名&#xff1a;mysql-5.6.33-linux-glibc2…

Go 函数特性和网络爬虫示例

爬取页面 这篇通过网络爬虫的示例&#xff0c;来了解 Go 语言的递归、多返回值、延迟函数调用、匿名函数等方面的函数特性。首先是爬虫的基础示例&#xff0c;下面两个例子展示通过 net/http 包来爬取页面的内容。 获取一个 URL 下面的程序展示从互联网获取信息&#xff0c;获…

Qt的安装和使用中的常见问题(详细版)

对于太长不看的朋友&#xff0c;可参考Qt的安装和使用中的常见问题&#xff08;简略版&#xff09;。 目录 1、引入2、Qt简介3、Qt版本 3.1 查看安装的Qt版本3.2 查看当前项目使用的Qt版本3.3 查看当前项目使用的QtCreator版本3.4 Linux命令行下查看和使用不同版本的Qt4、Qt模块…