idea中mapper.xml模版配置
时间: 2023-09-08 19:14:59 浏览: 124
以下是一个示例mapper.xml模板配置:
```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="selectUserById" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 根据条件查询用户列表 -->
<select id="selectUserList" resultType="com.example.entity.User">
SELECT * FROM user
<where>
<if test="name != null and name != ''">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
<!-- 新增用户 -->
<insert id="insertUser" parameterType="com.example.entity.User">
INSERT INTO user (name, age) VALUES (#{name}, #{age})
</insert>
<!-- 更新用户信息 -->
<update id="updateUser" parameterType="com.example.entity.User">
UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
<!-- 删除用户 -->
<delete id="deleteUserById" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
</mapper>
```
在这个示例中,我们定义了一个命名空间为`com.example.mapper.UserMapper`的mapper文件。在该命名空间中,我们定义了五个操作:
- `selectUserById`:根据用户id查询用户信息。
- `selectUserList`:根据条件查询用户列表。
- `insertUser`:新增用户。
- `updateUser`:更新用户信息。
- `deleteUserById`:根据用户id删除用户。
其中,`selectUserList`演示了使用`<where>`和`<if>`标签来动态拼接SQL条件。
在MyBatis中,我们可以通过`SqlSessionFactory`和`SqlSession`来使用mapper.xml中定义的操作。例如:
```java
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 查询用户信息
User user = userMapper.selectUserById(1);
System.out.println(user);
// 查询用户列表
List<User> userList = userMapper.selectUserList("张三", null);
System.out.println(userList);
// 新增用户
User newUser = new User("李四", 25);
userMapper.insertUser(newUser);
sqlSession.commit();
// 更新用户信息
newUser.setName("王五");
userMapper.updateUser(newUser);
sqlSession.commit();
// 删除用户
userMapper.deleteUserById(newUser.getId());
sqlSession.commit();
```
在这个示例中,我们先通过`SqlSessionFactoryBuilder`来构建`SqlSessionFactory`,然后通过`SqlSession`来获取mapper接口的代理实现类。通过代理实现类,我们可以直接调用mapper.xml中定义的方法,并传入适当的参数。最后,在执行完所有操作后,我们需要通过`sqlSession.commit()`来提交事务。
阅读全文