查询语句是相对复杂的一项了
基本的查询属性模板
<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>
分享到:
相关推荐
在MyBatis中,映射文件是用于定义SQL语句和Java对象之间的映射关系的配置文件。通常情况下,映射文件会被放在资源目录(resources)下的某个子目录(如mapper)下。在MyBatis的核心配置文件mybatis-config.xml中,...
在MyBatis中,我们可以通过配置XML映射文件或者注解来实现这种映射,以便在查询主表时,能够自动加载与之关联的从表数据。 二、XML配置方式的一对多映射 1. 主表实体类:定义主表对应的Java类,通常包含一个集合...
3. 如何在Mybatis中编写XML映射文件和Mapper接口,实现SQL的执行。 通过以上内容,你可以了解Mybatis如何与MySQL数据库配合,创建和管理数据库表。在实际开发中,理解并熟练运用这些知识点,能帮助你更高效地进行...
2. 映射文件与 XML 映射元素:Mybatis 的映射文件通常以 `.xml` 结尾,如 `mybatis3.xml`,它包含了 SQL 语句和结果集映射。在映射文件中,`<select>`, `<insert>`, `<update>`, `<delete>` 元素分别对应 SQL 的查询...
在MyBatis中,SQL映射文件起着至关重要的作用,它是连接数据库和Java代码的桥梁,允许开发者灵活地控制SQL语句的编写。本文将深入探讨MyBatis框架中的SQL映射文件配置,主要包括以下几个方面: 1. **基本结构** ...
3. **XML配置(Mapper XML)**:在Mybatis-Plus中,XML配置文件不再是必需的。默认情况下,Mybatis-Plus会根据实体类和Mapper接口自动生成相应的SQL语句。如果你仍然希望使用XML文件进行更复杂的SQL配置,可以通过@...
- 在对应的UserMapper.xml文件中,编写SQL查询语句,并进行关联映射配置。这里会使用`<resultMap>`定义映射规则,`<association>`标签来处理一对多关系。 ```xml <!-- 基本字段映射 --> <!-- 一对多关联...
在XML映射文件中,MBG会为每个数据库表生成插入(insert)、更新(update)、删除(delete)和查询(select)等基本操作的SQL语句。这些语句可以通过Mapper接口在业务逻辑中调用,大大简化了数据库操作。 总的来说...
Mapper映射配置文件是MyBatis的核心组成部分,用于定义SQL查询和结果映射。 首先,我们来看一下Mapper的XML配置文件。Mapper的XML文件通常放在项目的`resources`目录下,以`.xml`为扩展名,与对应的Java接口处于...
mybatis动态sql:SQL 映射 XML 文件是所有 sql 语句放置的地方。需要定义一个 workspace,一般定义为对应的接口类的路径。写好 SQL 语句映射文件后需要在 MyBAtis 配置文件 mappers 标签中引用。
MyBatis是一个强大的Java持久层框架,它简化了数据库操作,允许开发者将SQL语句直接集成到Java代码中。在MyBatis中,关联映射是处理对象关系映射(ORM)的重要部分,用于描述实体类之间的关联关系,如一对一...
这种映射允许我们在查询时自动处理关联对象,而无需手动编写复杂的SQL语句。关联映射分为嵌套查询(Nested Select)和嵌套结果(Nested ResultMap)两种方式。 1. 嵌套查询:在查询主表数据时,通过子查询来获取...
MyBatis是一个流行的Java持久层框架,它简化了与数据库之间的交互,允许开发者将SQL查询直接映射到Java对象。这个文档主要介绍了MyBatis框架的核心概念和基本使用步骤。 首先,MyBatis的配置文件分为两个部分:全局...
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs...
在Java的MyBatis框架中,SQL语句映射部分是整个ORM(对象关系映射)过程中的核心组件,它负责将SQL查询结果转化为Java对象。这篇教程将深入讲解SQL映射XML文件的编写,主要关注`resultMap`以及增删查改(CRUD)的...
Mybatis关联映射是数据库操作中的一个重要概念,它允许我们在SQL查询中处理一对多、多对一、多对多等复杂关系。在这个"Mybatis关联映射Demo"中,我们将深入探讨如何在Mybatis框架中实现这些关系映射,以便更好地理解...
- **Mapper XML文件**:编写SQL语句和结果映射,可以进行复杂的查询和参数绑定。 - **SqlSession**:执行SQL的会话对象,通过SqlSessionFactory创建,用于执行增删改查操作。 - **ResultMap**:配置映射规则,将...
ResultMapping 是 MyBatis 中的结果映射,该对象负责将 SQL 语句的执行结果映射成 Java 对象。 3.16 Discriminator Discriminator 是 MyBatis 中的鉴别器,该对象负责将 SQL 语句的执行结果映射成 Java 对象。 4....
在IT行业中,MyBatis是一个广泛使用的持久层框架,它允许开发者直接编写SQL语句,提供了灵活的数据访问和映射机制。这篇博客“mybatis直接执行sql语句后续之一”可能探讨了如何在MyBatis中高效且有效地执行SQL操作。...
**MyBatis关联映射详解** 在Java开发中,MyBatis作为一个优秀的持久层框架,提供了灵活的数据映射功能,使得数据库操作变得简单而高效。其中,关联映射是MyBatis中的一个重要特性,用于处理数据库中复杂的关系,如...