`

Mybatis3查询语句映射

 
阅读更多

查询语句是相对复杂的一项了

 

基本的查询属性模板

 

<select 
		id=”selectPerson” 
		parameterType=”int” 
		parameterMap=”deprecated” 
		resultType=”hashmap” 
		resultMap=”personResultMap” 
		flushCache=”false” 
		useCache=”true” 
		timeout=”10000” 
		fetchSize=”256” 
		statementType=”PREPARED” 
		resultSetType=”FORWARD_ONLY” 
		> 

 

 解释

 

 

id  在命名空间中唯一的标识符,可以被用来引用这条语句。 

parameterType  将会传入这条语句的参数类的完全限定名或别名。 

parameterMap  这是引用外部 parameterMap 的已经被废弃的方法。使用内联参数映射和 parameterType 属性。 

resultType  从这条语句中返回的期望类型的类的完全限定名或别名。注意集合情形,那应该是集合可以包含的类型,而不能是集合本身。使用 resultType或 resultMap,但不能同时使用。 

 

resultMap  命名引用外部的resultMap。返回map是MyBatis 最具力量的特对其有一个很好的理解的话,许多复杂映射的情形就能被解决使用 resultMap 或 resultType,但不能同时使用。 

flushCache  将其设置为 true,无论语句什么时候被调用,都会导致缓存空。默认值:false。 

useCache  将其设置为 true,将会导致本条语句的结果被缓存。默认值:

timeout   这个设置驱动程序等待数据库返回请求结果,并抛出异常时最大等待值。默认不设置(驱动自行处理)。 

fetchSize  这是暗示驱动程序每次批量返回的结果行数。默认不设置(自行处理)。 

statementType  STATEMENT,PREPARED 或 CALLABLE 的一种。这会让 My使用选择使用 Statement,PreparedStatement或 CallableStatem默认值:PREPARED。 

resultSetType  FORWARD_ONLY|SCROLL_SENSITIVE|SCROLL_INSENSIT中的一种。默认是不设置(驱动自行处理)。 

 

搜索条件的判断

 

	<select id=”findActiveBlogLike” parameterType=”Blog” resultType=”Blog”>
		SELECT * FROM BLOG WHERE state = "ACTIVE‟
		<if test="title ! null ">
			AND title like #{title} 
		</if>
		<if test="author ! null and author.name ! =null">
			AND title like #{author.name} 
		</if>
	</select>

 

 防止where语句的错误

对于可能出现where空,可where and的错误使用<where>标签会自动判断是否加入where关键字

 

	<select id=”findActiveBlogLike” parameterType=”Blog” resultType=”Blog”>
		SELECT * FROM BLOG
		<where>
			<if test=”state ! null ”>
				state = #{state} 
			</if>
			<if test=”title ! null ”>
				AND title like #{title} 
			</if>
			<if test=”author ! null and author.name ! =null”>
				AND title like #{author.name} 
			</if>
		</where>
	</select>

 

防止set空或逗号错误

对于可能在update时set值的多重判断后set空值或set值后逗号数量不对的错误使用<set>标签可自动判断处理

 

	<update id="updateAuthorIfNecessary" parameterType="domain.blog.Author">
		update Author
		<set>
			<if test="username != null">username=#{username},</if>
			<if test="password != null">password=#{password},</if>
			<if test="email != null">email=#{email},</if>
			<if test="bio != null">bio=#{bio}</if>
		</set>
		where id=#{id}
	</update>

 

处理集合in使用foreach标签

 

	<select id="selectPostIn" resultType="domain.blog.Post">
		SELECT *
		FROM POST P
		WHERE ID in
		<foreach item="item" index="index" collection="list" open="("
			separator="," close=")">
			#{item} 
		</foreach>
	</select>

 

 

分享到:
评论

相关推荐

    Java的MyBatis框架中Mapper映射配置的使用及原理解析

    Mapper用于映射SQL语句,可以说是MyBatis操作数据库的核心特性之一,这里我们来讨论Java的MyBatis框架中Mapper映射配置的使用及原理解析,包括对mapper的xml配置文件的读取流程解读.

    MyBatis SQL映射文件

    MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单 SQL映射文件的几个顶级元素(按照定义的顺序) 1.mapper - namespace 2.cache - 配置给定命名空间的缓存 3.cache-ref – 从其他...

    mybatis动态sqlSQL 映射 XML 文件是所有 sql 语句

    mybatis动态sql:SQL 映射 XML 文件是所有 sql 语句放置的地方。需要定义一个 workspace,一般定义为对应的接口类的路径。写好 SQL 语句映射文件后需要在 MyBAtis 配置文件 mappers 标签中引用。

    详解Java的MyBatis框架中SQL语句映射部分的编写

    主要介绍了Java的MyBatis框架中SQL语句映射部分的编写,文中分为resultMap和增删查改实现两个部分来讲解,需要的朋友可以参考下

    mybatis自动生成语句XML版本

    mybatis自动生成SQL,生成xml映射文件,实体,修改generator_oracle_apply.xml路径,当当前目录下打开cmd 运行txt里面语句。完成。

    MyBatis执行SQL并将结果映射成Java对象.docx

    5. Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中 该对象包括SQL语句 输入参数映射信息 输出结果映射信息 其中输入参数和输出结果的映射类型包括HashMap集合对象 POJO对象类型

    Mybatis动态SQL高级映射.zip

    mybatis动态sql 1.什么是动态SQL? Mabits是一个Java持久化框架,它提供了动态SQL的功能。动态SQL是一种根据不同条件动态生成SQL语句的技术。在Mabits中,动态SQL通常是通过使用一组特殊的标签和代码块来实现的,...

    自动生成mybatis映射文件工具

    自动生成mybatis映射文件工具; 步骤: 1》打开generatorConfig.xml文件,配置自己的数据库连接参数 ...3》:回到根目录,按住Shif+鼠标右键(即在当前目录打开命令行),执行生成语句.txt文件中的内容

    mybatis映射文件自动生成工具

    mybatis映射文件自动生成工具,在generator.xml配置数据表和连接参数,命令行运行generator核心jar文件,包含命令语句

    SQL语句映射文件

    SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用。

    Mybatis结果集自动映射的实例代码

    在使用Mybatis时,有的时候我们可以不用定义resultMap,而是直接在&lt;select&gt;...这个时候其实就用到了Mybatis的结果集自动映射,下面通过本文给大家分享Mybatis结果集自动映射的实例代码,一起看看吧

    mybatis-3-mybatis-3.5.13.zip

    3. 映射文件解析: 映射文件(Mapper XML文件)定义了SQL语句、参数映射关系、结果集映射关系等。MyBatis使用XML解析器解析映射文件,将SQL语句和数据库操作转化为Java对象。 4. SQL执行: 当执行SQL操作时,...

    springmybatis

    MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan ...

    mybatis笔记.zip

    4. SQL语句映射: MyBatis支持静态SQL和动态SQL。使用、、、等元素来定义SQL语句。 使用${}和#{}来插入参数,其中${}会直接替换,#{}会被预编译防止SQL注入。 5. 参数映射: 参数映射使用#{}或${}来引用参数,#{}...

    Mybatis简介.docx

    1.Mybatis通过参数映射方式,可以将参数灵活的配置在SQL语句中的配置文件中,避免在Java类中配置参数(JDBC) 2.Mybatis通过输出映射机制,将结果集的检索自动映射成相应的Java对象,避免对结果集手工检索(JDBC) 3...

    免费开源!!Java 的 MyBatis SQL 映射器框架

    MyBatis SQL 映射器框架使得在面向对象的应用程序中使用关系数据库变得更加容易。MyBatis 使用 XML 描述符或注释将对象与存储过程或 SQL 语句结合起来。简单性是 MyBatis 数据映射器相对于对象关系映射工具的最大...

    Java的MyBatis框架中XML映射缓存的使用教程

    MyBatis程序在做好XML映射后能够有缓存的功能,这样映射过SQL语句的配置以后就可以拿过来直接用了,这里我们来一起总结一下Java的MyBatis框架中XML映射缓存的使用教程

    MyBatis主配置文件

    MyBatis学习 之 一、MyBatis简介...MyBatis学习 之 二、SQL语句映射文件(1)resultMap MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存 MyBatis学习 之 三、动态SQL语句 MyBatis学习 之 四、MyBatis配置文件

    Java 的 MyBatis SQL 映射器框架

    MyBatis SQL 映射器框架使得在面向对象的应用程序中使用关系数据库变得更加...MyBatis 使用 XML 描述符或注释将对象与存储过程或 SQL 语句结合起来。简单性是 MyBatis 数据映射器相对于对象关系映射工具的最大优势。

    Mybatis的Eclipse插件MyBatipse.zip

    &gt; 重命名 MyBatis 元素在 Java 映射器中,右键单击 -&gt; MyBatis Refactor -&gt; 重命名 MyBatis 元素重命名 Java 映射器方法也会更新其引用Miscellaneous向导创建一个新的 XML 映射文件控制台视图中的智能复制菜单用以...

Global site tag (gtag.js) - Google Analytics