mybatis中通过xml配置sql时使用的节点
时间: 2023-04-25 11:01:54 浏览: 72
Mybatis中通过xml配置sql时使用的节点包括:
1. `<select>`:用于定义查询语句。
2. `<insert>`:用于定义插入语句。
3. `<update>`:用于定义更新语句。
4. `<delete>`:用于定义删除语句。
5. `<resultMap>`:用于定义结果集映射。
6. `<parameterMap>`:用于定义参数映射。
7. `<sql>`:用于定义可重用的SQL片段。
8. `<include>`:用于引用可重用的SQL片段。
9. `<if>`:用于条件判断。
10. `<where>`:用于定义查询条件。
11. `<set>`:用于定义更新语句中的SET子句。
12. `<foreach>`:用于循环遍历集合。
13. `<choose>`:用于多条件判断。
14. `<when>`:用于定义条件分支。
15. `<otherwise>`:用于定义默认分支。
相关问题
mybatis数据递归xml配置
如果需要在 MyBatis 中使用递归查询数据,可以通过 xml 配置文件来实现。
首先,在 mapper.xml 文件中定义一个递归查询的 SQL 语句,例如:
```xml
<select id="selectChildrenByParentId" parameterType="java.lang.Long" resultType="com.example.model.Node">
WITH RECURSIVE cte AS (
SELECT * FROM mytable WHERE parent_id = #{parentId}
UNION ALL
SELECT n.* FROM mytable n JOIN cte ON n.parent_id = cte.id
)
SELECT * FROM cte
</select>
```
在上面的 SQL 语句中,使用了 WITH RECURSIVE 关键字来定义一个递归查询。cte 是一个临时表,包含了 parent_id 等于指定 parentId 的记录,以及所有 parent_id 等于这些记录的 id 的记录。这样,就可以递归查询出所有子节点了。
在 MyBatis 中,使用 #{parentId} 来接收 parentId 参数,并使用 resultType 来指定返回结果的类型。
接下来,在对应的 mapper 接口中定义方法:
```java
public interface NodeMapper {
List<Node> selectChildrenByParentId(Long parentId);
}
```
在方法中,直接调用上面定义的 SQL 语句即可:
```java
List<Node> children = nodeMapper.selectChildrenByParentId(parentId);
```
这样,就完成了 MyBatis 中递归查询数据的配置。
mybatis的xml配置
MyBatis 是一款优秀的持久层框架,它对 JDBC 的操作数据库的过程进行了封装,使得开发者只需要关心 SQL 语句本身,而不需要花费精力去处理如何连接数据库、如何处理结果集等问题。
MyBatis 的 XML 配置文件主要包括以下内容:
1. 数据源配置:定义数据库的连接信息,包括数据库类型、地址、用户名和密码等。
2. Mapper 映射文件:定义 SQL 语句和参数映射关系,包括 SQL 语句、参数类型、返回值类型等。
3. MyBatis 全局配置:定义全局参数,例如缓存配置、事务管理器配置等。
下面是一个简单的 MyBatis XML 配置示例:
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 数据源配置 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- Mapper 映射文件 -->
<mappers>
<mapper resource="com/example/mapper/UserMapper.xml"/>
</mappers>
</configuration>
```
其中:
1. `environments` 节点定义了一个开发环境,包括事务管理器和数据源。
2. `dataSource` 节点定义了数据源类型和连接信息。
3. `mappers` 节点定义了 Mapper 映射文件的路径。
4. `mapper` 节点定义了具体的 Mapper 映射文件。
Mapper 映射文件示例:
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUserById" parameterType="int" resultType="com.example.model.User">
select * from user where id = #{id}
</select>
<insert id="addUser" parameterType="com.example.model.User">
insert into user(name, age) values(#{name}, #{age})
</insert>
</mapper>
```
其中:
1. `namespace` 属性指定了 Mapper 接口的全限定名。
2. `select` 节点定义了一个查询语句,`id` 属性指定了方法名,`parameterType` 属性指定了参数类型,`resultType` 属性指定了返回值类型。
3. `insert` 节点定义了一个插入语句,属性与 `select` 节点类似。