mybatis零配置,@Select或者SelectProvider如何复用查询列 5C

*Mapper.xml中的用法

  <sql id="Base_Column_List" >
    c_bh, c_mc, d_fbrq, d_ssrq, d_create, d_update
  </sql>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
    select 
   <include refid="Base_Column_List" />
    from t_fl
    where c_bh = #{cBh,jdbcType=VARCHAR}
  </select>

mybatis零配置,@Select或者SelectProvider如何复用查询列,达到上边xml中的效果?

0

1个回答

 public interface UserMapper {
     @SelectProvider(type = SqlProvider.class, method = "selectUser")
     @ResultMap("userMap")
     public User getUser(long userId);
}
 public class SqlProvider {
     public String selectUser(long userId) {
         return "select * from user where userId=" + userId;
     }
 }
0
weixin_41088527
weixin_41088527 我问的是如何复用,达到xml配置中include语句的效果。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis实现零配置
基于 com.github.abel533-mapper改造的实现的动态查询字段,mapper已经实现了单表的操作不需要写配置文件,但是唯一的不足就是查询的时候不能根据具体的业务区查询指定的字段,默认是查询所有的字段,这样在数据访问量大的情况下性能会跟不上。几天基于这种物配制的基础,在原有的基础上修改了查询方便实现了根据业务查询指定的字段,实现方法很简单,在执行sql之前把需要查询的字段和本地线程
关于注解的方式来动态sql查取分页数据
1.封装简版的查询的实体 /** * @author:xuekan * @Date:2018/8/12 22:48 * @Description: */ public class StaffQuery extends PageInfo { /** * 角色name */ private String name; ...
mybatis select元素的使用以及模糊查询
• Select元素来定义查询操作。 • Id:唯一标识符。 – 用来引用这条语句,需要和接口的方法名一致 • parameterType:参数类型。 – 可以不传,MyBatis会根据TypeHandler自动推断 • resultType:返回值类型。 – 别名或者全类名,如果返回的是集合,定义集合中元素的类型。不能和resultMap同时使用 当进行模糊查询的时候,一般会查询多
基于Mybatis的sql动态查询和模糊查询的实现
基于Mybatis的sql动态查询和模糊查询的实现有时候,我们在进行查询的时候会涉及到条件查询,即查询的条件可以是某个值,也可以为空。就像我们在淘宝上购物时,有个输入框,在里面你输入值后,就会有相应的结果。什么都不输入的时候,也会有商品显示出来。模糊查询大家都知道,就不班门弄斧了。。。。Mapper层的写法@SelectProvider(type = OrgTeacherSqlProvider.cl
@SelectProvider,@Select和xml用法的一点理解
1.@Select 同@select功能类似的还有@insert,@delete,@update,对应于数据库语句的CRUD。使用@select很方便,不用写配置文件,一般是写在mapper的interface类中,用法如下: public interface AdmainMapper{@Select("SELECT * FROM userinfo WHERE username = #{use
mybatis使用@SelectProvider构建动态语句,多个参数(不使用@param注解情况下),3.4.2版本之后报错 BindingException: Parameter 'arg0'
最近代码升级mybatis了的版本3.4.6,启动后发现 使用@SelectProvider构建多个参数(不使用@param注解情况下)的动态语句,在查询时会报错。 org.apache.ibatis.binding.BindingException: Parameter 'arg0' not found.官方例子为此特意翻阅了mybatis的官方说明,找到下面的例子@SelectProvider...
MyBatis 3(中文版) 第四章 使用注解配置SQL映射器
本章将涵盖以下话题: l 在映射器Mapper接口上使用注解 l 映射语句            @Insert,@Update,@Delete,@SeelctStatements l 结果映射            一对一映射            一对多映射 l 动态SQL            @SelectProvid
使用@Select注解时使用in传入ids数组作为参数
最近用到Mybatis的注解sql方式,结果发现在传入多个id作为参数跟xml的用法不太一样,到网上搜罗了一些方法,很多都会报错,最后如下方法调通了,重点已标红 @Select({ "", "select", "c.cust_id, plat_cust_id, plat_cust_name, cust_map_id, cus
Mybatis多条件动态查询
当进行多条件动态查询时,最方便的使用@SelectProvider(type=XXXSqlProvider.class, method=&quot;getXXX&quot;)注解 此时我们需要编写自己的SqlProvider,我们需要用到org.apache.ibatis.jdbc.SqlBuilder中的静态方法,来看一段代码吧,如下: public String getUserListByConditions...
mybatis3.3@sqlprovider注解使用的一点点坑
mybatis3.3@sqlprovider与mybatis3.4的一点区别
spring boot 整合mybatis,基于@Select注解方式
很好的实例,简单易懂,适合新手
MySQL select 子查询复用,进行聚合计算
当对一个复杂的子查询结果进行分组(group by)聚合计算时, 有时需要进行多次聚合,如果不能复用自查寻的结果,查询效率会很低下 在有些情况下,可以使用 IF 函数进行不同条件的聚合示例如下: 假设子查询的结果有班级,学号,平均分这3个字段(class, no, score) 现在想求每个班级的总人数和及格人数复用前:select A.class A.sum, B.sum from (se
多个参数的select方法调用
-
mybatis @Select注解中如何拼写动态sql
package cn.erongcai.hrplatform.dao.demand; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select
mybatis动态SQL防止SQL注入
IvrNodeTreeMapper.java如下:package com.example.springbootannotationmybatis.mapper; import com.example.springbootannotationmybatis.domain.IvrNodeTree; import com.example.springbootannotationmybatis.sql...
MyBatis数据持久化 SQL复用(可重用的 SQL 代码段)
1、修改pom.xml,升级MyBatis版本升级到3.3.0以上版本 2、刷新maven(两种方式) A. 命令方式 在terminal窗口输入:mvn clean install -Dmaven.test.skip=true小注: clean 移除所有上一次构建生成的文件 install 将包安装至本地仓库,以让其它项目依赖 maven.test.skip
@selector的函数如何传参数/如何传递多个参数
不同的类会有不同的传递方式,参数名也不尽相同。如果是传单个参数的就不用集合,如果是传多个参数可以用类似nsarray,nsdictionary之类的集合传递。看下面例子: 例子1: 通过NSTimer看IPhone对@selector的函数如何传参数, NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]
MyBatis数据持久化(八)sql复用
在mybatis中,我们可以將sql语句中公共的部分提取出来,然后需要该段sql的地方通过include标签引入即可,这样可以达到sql语句复用的目的。 例如我们有两条相似的查询语句:<select id="queryUserInfoByName" parameterType="string" resultType="user"> select * from User where
关于Mybatis的select 查询时 传递多个参数的4种方式
下面给大家总结了以下几种多参数传递的方法。 方法1:顺序传参法 public User selectUser(String name, int deptId); &amp;lt;select id=&quot;selectUser&quot; resultMap=&quot;UserResultMap&quot;&amp;gt; select * from user where user_name = #{0} and dept...
mysql select 查询,使用列别名无效问题
select s_username as username from userinfo结果别名没生效,查询结果还是s_username,而不是username解决办法:jdbc 5.1.x版本驱动,请在数据库连接url指定 useOldAliasMetadataBehavior=true 即可如:jdbc:mysql://localhost:3306/rimmsfz?useOldAliasMeta...
关于Mybatis中动态查询表和表中的列
STATEMENT" resultType="long"> SELECT COUNT(*) FROM ${tableName} WHERE ${busiCodeName} = ${busiCodeValue} 注意红色的部分一定要设置成非预编译,如果不设置的话,mybatis进行预编译,传入进来的tableName和busiCodeName就变成了传入传入进来的字符串,会带上双引号。
mybatis注解Select查询List,返回有对象个数,但是为null
用mybatis注解Select查询List,返回有对象个数,但是为null,代码如下public interface SysRoleMapper { @Select(&quot;select * from sys_role &quot;) List&amp;lt;SysRole&amp;gt; selectAll(); }具体出现原因,查询出来的数据,与实体bean的字段不相匹配,导致null实体bean的字...
Mybatis的分页插件PageHelper使用及注意事项
(一)PageHelper分页插件介绍*笔者采用spring+springMVC+mybatis框架做java后台开发,开发软件是IntellijIDEA(用过之后已卸掉eclipse),项目为maven工程。使用方法(在已有ssm框架基础上)1.mybatis的配置文件中添加代码: <plugins> <!-- com.github.pagehelper为PageHelper类所在包名
mybatis07(注解实现一对多的动态sql查询)
  注:配置文件实现一对多的动态sql查询参考 mybatis03一对一实现动态sql 1.class的javabean(此时设置变量students来表示多个学生) package com.bean; import java.util.List; public class Classes {  private Integer id;  private Integer code;  ...
MyBatis框架核心之(五)注解使用resultMap及多表查询
五、resultMap与多表查询(注解)   传统的mapper.xml+接口使用接口映射相对较麻烦 所以我们可以使用注解来简化开发   支持的注解有以下: MyBatis可以利用SQL映射文件来配置,也可以利用Annotation来设置。MyBatis提供的一些基本注解如下表所示。 注解 目标 相对应的 XML 描述
关于Mybatis将查询结果中添加常量列并返回
引言在使用mybatis的时候,查询一个集合返回给前台页面,在有的时候,我们会添加一个常量字段到对象或者集合中,来标识这个对象属于的类型等等情况,当前台进行再次请求的时候携带此变量进行请求.但是:如果在数据库中并没有这个字段的时候,查询集合我们就需要前台进行这个字段的编写,写死!我们可否直接将其对应的字段返回呢?然后前台直接拿到这个字段进行请求即可?正文——————————————————————...
mybatis查询列与实例属性对应
比如你要做连接查询一个表的一个属性,而你不想要返回一个resultMap,不想返回的对象里再嵌套一个对象,怎么办呢? 用AS 关键字,把你查询的列的字段AS成你的实例里属性的名字, 这样就把这个值赋给了你实体类那个对应的字段了! ...
mybatis SQL语句复用
mybatis SQL语句复用mapper.xml 中共用mapper.xml 间共用项目中也许我们会遇到一段sql语句被多个查询、增加等语句用到的情况,如何去偷懒呢,复用sql无疑是较好的选择这里只提供简单的示范:如果只是单表查询,并且希望共用的sql只会出现在同一个mapper.xml文件中,那么我们可以直接在<mapper namespace="XXXXX"></mapper>中写下面的业务代
MyBatis注解应用之动态SQL语句
有时候,我们需要在输入的标准下,创建动态的查的语言。MyBatis提供了多个注解如:@InsertProvider,@UpdateProvider,@DeleteProvider和@SelectProvider,这些都是建立动态语言和让MyBatis执行这些语言。 现在让我们来看一下如何使用@ SelectProvider来创建简单的SELECT映射的例子。创建一个TutorDynaSqlPro
利用Mybaties注解动态Sql实现查询功能(表名不固定)
最近开发过程中,数据库的表名是日表,每次查询需要动态传入表名,所以需要动态拼接sql 一.mapper接口,调用provider类,该类返回sql(RecordProvider需要自己新建一个class)   二.Provider.class,利用StringBuider拼接sql,返回的String跟在mapper.xml写sql一样   class   ...
mybaits中select * 映射对象类字段为null
解决xxx_xx带有下划线数据库字段映射不到xxxXx对象类字段。 在druid设置中,增加以下代码 public SqlSessionFactory sqlSessionFactory(DruidDataSource druidDataSource) throws Exception { SqlSessionFactoryBean sessionFactory = ...
Mybatis 使用注解和Provider类实现动态条件查询
Mybatis 提供了基于Xml和注解的自定义SQL查询,相比Xml的方式,注解更加便捷、优雅。为了防止遗忘具体的细节编写,摘录一段曾经写过的代码。 此处,一大片注解内容十分不优雅,更好的办法是通过调用Provider类的指定方法生成SQL。 1.注解内拼写 Mybatis SQL 脚本 @Repository public interface CustomerFeedMapper exte...
接口分析,以简单的mybatis接口为例
关于接口的思考在所有的框架当中,接口是少数的,实现类是大多数的所以入手的时候,当我们明白提炼的接口是怎么回事的时候。那就意味着你差不多读懂了这个框架的一半。所以我们可以以mybatis几个包的接口来逐个分析这个框架搭起来的时候它的意图是怎样的。这样将大大减少我们分析一个框架的工作量从org.apache.ibatis包开始读起这里再插一个,接口之所以能代表很多的含义和背后的意图,在于它的无状态特性...
传值设置mybatis查询的 列名(字段名),以及如何查看mybatis中执行的SQL语句
解决 传值设置mybatis查询的 列名(字段名),如何查看mybatis中执行的SQL语句,以及mysql中${}和#{}传值的特点
Mybatis查询部分字段
解决问题:数据库表里面很多字段不太需要,有时只想取到里面的部分字段的值,如果重新定义 DTO 会比较麻烦。BookMapper.xml 文件中定义如下:<!-- Book全部字段 --> <resultMap id="BaseResultMap" type="com.lgsc.cjbd.book.model.Book"> <id column="book_id" property="book
深入理解MyBatis(四)—MyBatis的Select操作执行流程
深入理解MyBatis(四)—MyBatis的Select操作执行流程 MyBatis的操作主要分为update类和select类;insert操作,delete操作,update操作都是通过update操作实现; 个人主页:tuzhenyu’s page 原文地址:深入理解MyBatis(四)—MyBatis的Select操作执行流程 Select操作流程 (1
基于maven管理的spring-mybatis的整合如何实现零配置
最近发现maven零配置挺流行,但实际摸索之后个人感觉没有之前传统的直接写配置文件来的方便,二者最主要的区别就是将maven的ApplicationContext.xml文件通过代码的方式实现,其它的一些调用不变。 代码结构目录如下 import java.io.IOException; import org.mybatis.spring.SqlSessionFactoryBean; im...
MyBatis之Mapper XML 文件详解-自动映射查询结果
正如你在前面一节看到的,在简单的场景下,MyBatis可以替你自动映射查询结果。 如果遇到复杂的场景,你需要构建一个result map。 但是在本节你将看到,你也可以混合使用这两种策略。 让我们到深一点的层面上看看自动映射是怎样工作的。当自动映射查询结果时,MyBatis会获取sql返回的列名并在java类中查找相同名字的属性(忽略大小写)。 这意味着如果Mybatis发现了ID列和id属性,M
tkMyBatis 检索时返回指定列
在使用tkMyBatis时,Dao层直接继承的Mapper,就可以使用已有的函数进行CRUD,但是有的时候,检索的时候不需要返回所有的列,如果能像Mybatis之前在xml里面指明返回哪些列,岂不是更加有效率。 于是,简单查看了一下Mapper的内容,如果只关注select的部分,按照Mapper->BaseMapper->BaseSelectMapper->SelectOneMapper,可以
Mybatis实现@Select等注解动态组合SQL语句
一、背景说明    由于以前在项目中一直使用sqlmap.xml进行mybatis语句的编写和实现,其xml实现动态更新和查询较为方便,而目前由于技术框架所定,采用@Select、@Insert等注解方式来实现对应的持久化操作(MyBatis提供了简单的Java注解,使得我们可以不配置XML格式的Mapper文件,也能方便的编写简单的数据库操作代码),对于简单的数据库操作基本能够满足日常需要,但注...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 机器学习或者大数据竞赛 java学习论坛或者网站