静态查询是指在 SQL 语句中执行固定的查询操作,查询的条件和内容是预先确定的,不会随着用户输入或其他条件的改变而改变。以下是一个静态查询的示例:
<select id="selectUsersByRole" resultType="com.example.goods_admin.entity.User">
SELECT * FROM user
WHERE name= 'admin'
</select>
在上述的例子中,查询语句中的条件 name= 'admin'
是固定的,无论用户输入什么内容,都会查询出 "name" 字段等于 "admin" 的用户信息。
动态查询是指在 SQL 语句中根据用户输入或其他条件改变查询的操作。查询的条件和内容是根据用户的输入或其他条件动态生成的。以下是一个动态查询的示例:?
<select id="seleteUser" resultType="com.example.goods_admin.entity.User">
select * from user
<where>
<if test="keyWord !=null and keyWord!=''">
userName like concat('%', #{keyWord}, '%')
</if>
</where>
</select>
在这个示例中,查询语句根据用户输入的关键字来动态生成查询条件。如果用户输入了关键字,那么将会根据userName进行模糊匹配查询。
静态更新是指在 SQL 语句中执行固定的更新操作,更新的内容和条件是预先确定的,不会随着用户输入或其他条件的改变而改变。以下是一个静态更新的示例:
<update id="updateUserStatus" parameterType="com.example.goods_admin.entity.User">
UPDATE user
SET status = 'active'
WHERE id = #{id}
</update>
在上述的例子中,更新语句中的条件 id = #{id}
是固定的,无论用户输入什么内容,都会更新 "id" 字段等于给定参数 "id" 的用户状态为 "active"。
动态更新是指在 SQL 语句中根据用户输入或其他条件改变更新的操作。更新的内容和条件是根据用户的输入或其他条件动态生成的。以下是一个动态更新的示例:
<update id="updateUser" parameterType="com.example.goods_admin.entity.User">
UPDATE user
<set>
<if test="username != null">
username = #{username},
</if>
<if test="email != null">
email = #{email},
</if>
</set>
WHERE id = #{id}
</update>
在这个示例中,更新语句根据用户输入的用户名和邮箱来动态生成更新内容,同时根据给定参数 "id" 来确定更新的条件。
静态删除是指在 SQL 语句中执行固定的删除操作,删除的条件是预先确定的,不会随着用户输入或其他条件的改变而改变。以下是一个静态删除的示例:
<delete id="deleteUserById" parameterType="java.lang.Integer">
DELETE FROM user
WHERE id = #{id}
</delete>
在上述的例子中,删除语句中的条件 id = #{id}
是固定的,无论用户输入什么内容,都会删除 "id" 字段等于给定参数 "id" 的用户。
动态删除是指在 SQL 语句中根据用户输入或其他条件改变删除的操作。删除的条件是根据用户的输入或其他条件动态生成的。以下是一个动态删除的示例:
<delete id="deleteUser" parameterType="com.example.goods_admin.entity.User">
DELETE FROM user
WHERE 1=1
<if test="username != null">
AND username = #{username}
</if>
<if test="email != null">
AND email = #{email}
</if>
</delete>
在这个示例中,删除语句根据用户输入的用户名和邮箱来动态生成删除条件。
静态语句:
动态语句:
总结起来,静态语句适用于固定的操作,而动态语句适用于根据不同条件进行动态生成 SQL 语句的操作。通过使用静态语句和动态语句,可以使数据库操作更加灵活和可维护。