栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis的CRUD操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis的CRUD操作

Mybatis的操作
  • 一、实体类属性名 和 数据库表列名 不一致,不能自动封装数据
    • 1、起别名
    • 2、resultMap
    • 3、小结
  • 二、sql的参数问题
    • 1、占位符
    • 2、传递多个参数的方式(要不就是实体类映射,要不就是@Param)
    • 3、使用map集合(不常用)
  • 三、mybatis-动态sql
    • 2.1 、where 标签和 if 标签
    • 2.2、where 标签
    • 2.3、choose (when, otherwise)
    • 2.4、trim (where, set)
    • 2.5、foreach
  • 四、mybatis注解开发和xml开发


一、实体类属性名 和 数据库表列名 不一致,不能自动封装数据

数据库中的字段名以—来命名的时候,这个时候实体类的驼峰命名方式就与数据库表的字段名无法映射成功
解决办法:

1、起别名

利用sql片段给字段名起别名,并且提高复用性


	id, brand_name as brandName, company_name as companyName, ordered, description, status

在sql语句中使用include标签进行引用

 
    select
    
    from tb_brand;

2、resultMap

使用resultMap来定义字段和属性的映射关系


    
    
    

sql语句的编写


    select * from tb_brand where brand_name like concat('%',#{brandName},'%') and company_name like concat('%',#{companyName},'%')

concat 是mysql的拼接函数

3、使用map集合(不常用)

如果mapper接口方法是单个map集合类型,不需要加@Param注解,映射配置文件中#{}中名称需要和map集合的键名保持一致
将要传递的参数存储到map集合中,要注意的是,map集合的key值必须和sql语句中的占位符的名称一致,才能保证映射成功,将值传递成功。
将要传递的参数封装进map集合

	Map map = new HashMap();
    map.put("status" , status);
    map.put("companyName", companyName);
    map.put("brandName" , brandName);
  • 小结
    相对于三种方式,我们常用的还是是前二种(@Param和实体类)
三、mybatis-动态sql

1、为什么使用动态sql呢?
当我们进行多条件查询的时候,用户肯定不会所有的条件都填写,这个时候我们的SQL语句就不能那样写的,动态sql就出现啦

2、Mybatis对动态SQL有很强大的支撑:

  • if

  • choose (when, otherwise)

  • trim (where, set)

  • foreach

2.1 、where 标签和 if 标签
if 标签:条件判断
  • test 属性:逻辑表达式
 
        select * from tb_brand
       
         
           
                brand_name like concat('%',#{brandName},'%')
           
           
                company_name like concat('%',#{companyName},'%')
           
           
                status = #{status}
           
        
      
    

otherwise标签就类似于switch 的default 当都不满足的时候就返回otherwise标签中的内容

2.4、trim (where, set) 2.5、foreach

动态 SQL 的另一个常见使用场景是对集合进行遍历(尤其是在构建 IN 条件语句的时候)
比如:查询多个条件的sql语句


    select * from tb_brand
    
      
          
              status in
              
                  #{status}
              
          
      
  

四、mybatis注解开发和xml开发

注解开发——适合简单的sql语句

  • @Insert()
    @Delete()
    @Update()
    @Select()

xml配置文件
语句复杂的

引用官网的一句话:
使用注解来映射简答语句会使代码显得更加简洁,但对于稍微复杂一点的语句,java注解不仅力不从心,还会让你本来就复杂的SQL语句更加混乱不堪,因此,如果你需要做一些很复杂的操作,最好用xml来操作语句
永远不要拘泥于一种方式,你可以很轻松的在基于注释和XML的语句映射方式自由移植和切换

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/868008.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号