MyBatis基础映射

MyBatis基础映射,第1张

MyBatis基础映射

MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 致力于减少使用成本,让用户能更专注于 SQL 代码。

SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出):

cache – 该命名空间的缓存配置。cache-ref – 引用其它命名空间的缓存配置。resultMap – 描述如何从数据库结果集中加载对象,是最复杂也是最强大的元素。sql – 可被其它语句引用的可重用语句块。insert – 映射插入语句。update – 映射更新语句。delete – 映射删除语句。select – 映射查询语句。

查看dtd文件也能了解到包含这些标签:


下面的例子我们对象都使用了别名,在全局配置文件配置就可以了





    
        
        
    

    
         
        
    


输入参数 传递简单类型
//查询用户
User findById(Integer id);


      select * from user where username = #{username} and status = #{status}

集合和数组

一般我们使用标签去遍历

int batchSave(@Param("userList") List userList);

    INSERT INTO t_user(username,email,addr) VALUES
    
        (#{item.username}, #{item.email}, #{item.addr})
    

如果我们想取集合的第一条的话:比如我们取user集合的第一条的user对象的id去查询:#{list[0].id}

User findById(List users);

    select count(1) from t_user

输出pojo

UserMapper:

int getTotal();

UserMapper.xml:


    select * from t_user t where instr(t.username, #{username}) > 0

输出Map集合

还是上面的例子,但是我们只需要查询id和用户名这2个字段

UserMapper:

List> getListByName(@Param("username") String username);

UserMapper.xml:


  select
    user_id as id,
    user_name as userName
  from t_user
  where user_id = #{id}

第二种是: 使用resultMap: select标签通过resultMap属性指定我们要使用的映射map


  
  



id用来唯一标识这个resultMap, type指的是映射的实体类id标签一般用来代表主键映射,result标签其他列映射property: 对象的属性名, column:数据库列名

参考链接
https://mybatis.net.cn/
https://mybatis.org/mybatis-3/

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5712380.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存