MyBatis 【Mapper】文件常用写法

<?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="dao.UsersMapper">
    <!-- 查询所有用户信息,对应接口中的findAll()方法 -->
    <select id="findAll" resultType="Users">
        select * from users
    </select>
    
    <!-- 修改用户信息,对应接口中的updateUsers方法,测试set元素 -->
    <update id="updateUsers" parameterType="Users">
        update users
        <set>
            <if test="name!=null">
                name=#{name}
            </if>
            <if test="password!=null">
                ,password=#{password}
            </if>
            <if test="age!=0">
                ,age=#{age}
            </if>
        </set>
        where id=#{id}
    </update>
    
    <!-- 删除用户 对应接口中的deleteUsers方法 -->
    <delete id="deleteUsers" parameterType="Users">
        delete from users where id=#{id}
    </delete>
    
    <!-- 添加用户,对应接口中的insertUsers方法 -->
    <insert id="insertUsers" parameterType="Users">
        insert into users values(#{id},#{name},#{password},#{age},#{sex})
    </insert>
    
    <!-- 按多重条件查找用户,对应接口中的findByAll方法,测试trim元素 -->
    <select id="findByAll" parameterType="Users" resultType="Users">
        select * from users
        <trim prefix="where" prefixOverrides="and|or">
            <if test="name!=null">
                name=#{name}
            </if>
            <if test="password!=null">
                and password=#{password}
            </if>
            <if test="age!=0">
                and age=#{age}
            </if>
        </trim>
    </select>
    <select id="findById" parameterType="Users" resultType="Users">
        select * from users where id=#{id}
    </select>
    
    <!-- 根据多重条件查找用户,对应接口中的testList方法,测试foreach元素中的单参数list类型 -->
    <select id="test_List_ids" parameterType="Users" resultType="Users">
        select * from users where id in
        <foreach collection="list" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
    
    <!-- 根据多重条件查找用户,对应接口中的testList2方法,测试foreach元素中的单参数array类型 -->
    <select id="test_Array_ids" parameterType="Users" resultType="Users">
        select * from users where id in
        <foreach collection="array" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
    
    
    <!--    final List<Integer> ids = new ArrayList<Integer>();
            ids.add(1);
            ids.add(2);
            ids.add(3);
            ids.add(4);
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("ids", ids);
            params.put("name", "as");
            params.put("name1", "萨"); 
    -->
    <select id="test_Map" resultType="Users">
        select * from users where name like "%"#{name1}"%" or name like
        #{name} and id in
        <foreach collection="ids" index="index" item="item" open="("
            separator="," close=")">
            #{item}
        </foreach>
    </select>
    
    <!-- choose 选首个条件匹配查询 -->
    <select id="test_Choose" parameterType="Users" resultType="Users">
        select * from users where 1=1
        <choose>
            <when test="id!=0">
                and id=#{id}
            </when>
            <when test="name!=null">
                and name=#{name}
            </when>
            <when test="password!=null">
                and password=#{password}
            </when>
            <when test="age!=0">
                and age=#{age}
            </when>
            <otherwise>
                and 2=2
            </otherwise>
        </choose>
    </select>
</mapper>

 

转载于:https://www.cnblogs.com/luffya/p/3637824.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mybatis是一个用于Java应用程序的持久层框架。它提供了一种将应用程序与数据库连接的方式,并将数据库操作封装在映射语句中。 mybatismapper是一种使用XML或注解的方式来配置映射语句的方式。你可以在mapper中写入查询、插入、更新或删除数据的SQL语句,然后通过mybatis的API在应用程序中调用这些语句。 下面是一个使用XML配置映射语句的示例: ``` <mapper namespace="org.mybatis.example.BlogMapper"> <select id="selectBlog" resultType="Blog"> SELECT * FROM BLOG WHERE ID = #{id} </select> </mapper> ``` 这段代码定义了一个名为"selectBlog"的映射语句,它将返回一个名为"Blog"的对象。在应用程序中,你可以使用mybatis的API调用这个映射语句,如下所示: ``` BlogMapper mapper = sqlSession.getMapper(BlogMapper.class); Blog blog = mapper.selectBlog(1); ``` 你也可以使用注解的方式来配置映射语句,如下所示: ``` @Mapper public interface BlogMapper { @Select("SELECT * FROM BLOG WHERE ID = #{id}") Blog selectBlog(int id); } ``` 在应用程序中,你可以通过注入mapper的方式来使用这个接口: ``` @Autowired private BlogMapper mapper; Blog blog = mapper.selectBlog(1); ``` 希望这些信息对你有帮助。如果你有任何关于mybatis的疑问,请随 ### 回答2: Mybatis 是一款开源的持久层框架,可以方便地与关系型数据库进行交互。在使用 Mybatis 进行开发时,我们需要通过编写 Mapper 文件来定义 SQL 语句和映射关系。 MybatisMapper 文件通常以 XML 格式编写,主要包含以下内容: 1. Namespace 命名空间:用于唯一标识该 Mapper 文件,一般以 Mapper 接口的完全限定名命名。 2. SQL 语句定义:通过 `<sql>` 标签定义 SQL 片段,可以在不同的 SQL 语句中重复使用。例如,可以将查询条件、插入语句等常用语句定义为 SQL 片段。 3. ResultMap 结果映射:通过 `<resultMap>` 标签定义实体类与数据库表之间的映射关系。可以通过 `<result>` 标签指定数据库字段与实体类属性的对应关系。 4. Select 语句:通过 `<select>` 标签定义查询语句。其中可以使用 `<include>` 标签引用 SQL 片段,还可以通过 `<if>` 标签实现动态条件查询。 5. Insert、Update、Delete 语句:通过 `<insert>`、`<update>`、`<delete>` 标签定义插入、更新、删除语句。 6. 参数传递:可以通过 `<parameterType>` 标签指定参数类型,也可以通过 `#{}` 占位符接收传入的参数。 使用 MybatisMapper 写法,可以将 SQL 语句与 Java 代码分离,使得代码更加清晰、易于维护。此外,Mybatis 还提供了注解方式的 Mapper 写法,可以使用注解直接在 Mapper 接口上定义 SQL 语句,更加简洁方便。 总而言之,MybatisMapper 写法包括定义命名空间、定义 SQL 语句、定义结果映射、定义各种 CRUD 操作等。通过合理地使用这些标签,我们能够更方便地编写和管理数据库操作语句,提高开发效率。 ### 回答3: Mybatis是一个Java的持久层框架,它提供了一种通过配置文件或注解的方式来实现对象与关系数据库之间的映射。MapperMybatis中重要的组成部分,它用于定义CRUD操作以及其他与数据库交互相关的方法。 在Mybatis中,我们可以使用XML文件或注解来编写Mapper。下面是使用XML文件编写Mapper的示例: 1. 首先,创建一个XML文件,命名为"UserMapper.xml"。在该文件中,定义了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.UserMapper"> <select id="getUserById" parameterType="int" resultType="com.example.User"> SELECT * FROM user WHERE id = #{id} </select> <insert id="addUser" parameterType="com.example.User"> INSERT INTO user (id, name, age) VALUES (#{id}, #{name}, #{age}) </insert> <update id="updateUser" parameterType="com.example.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> ``` 2. 在Java中创建一个接口,命名为"UserMapper",用于定义Mapper接口中的方法: ```java package com.example; public interface UserMapper { User getUserById(int id); void addUser(User user); void updateUser(User user); void deleteUserById(int id); } ``` 3. 编写一个类,实现UserMapper接口。在该类中使用Mybatis的SqlSessionFactory和SqlSession来执行SQL语句: ```java package com.example; public class UserMapperImpl implements UserMapper { private SqlSessionFactory sqlSessionFactory; public UserMapperImpl(SqlSessionFactory sqlSessionFactory) { this.sqlSessionFactory = sqlSessionFactory; } @Override public User getUserById(int id) { SqlSession sqlSession = sqlSessionFactory.openSession(); User user = sqlSession.selectOne("com.example.UserMapper.getUserById", id); sqlSession.close(); return user; } @Override public void addUser(User user) { SqlSession sqlSession = sqlSessionFactory.openSession(); sqlSession.insert("com.example.UserMapper.addUser", user); sqlSession.commit(); sqlSession.close(); } @Override public void updateUser(User user) { SqlSession sqlSession = sqlSessionFactory.openSession(); sqlSession.update("com.example.UserMapper.updateUser", user); sqlSession.commit(); sqlSession.close(); } @Override public void deleteUserById(int id) { SqlSession sqlSession = sqlSessionFactory.openSession(); sqlSession.delete("com.example.UserMapper.deleteUserById", id); sqlSession.commit(); sqlSession.close(); } } ``` 通过以上步骤,我们就成功编写了一个使用MybatisMapper。XML文件中定义了SQL语句,Java接口定义了Mapper接口方法,而实现类中用于执行SQL语句和数据库交互。这样,我们就可以通过调用Mapper接口来实现对数据库的增删改查操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值