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

mybatis相关知识

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

mybatis相关知识

一、mybatis的优点

(1)基 于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理;提供 XML标签,支持编写动态 SQL 语句,并可重用。

(2)与 JDBC 相比,减少了 50%以上的代码量,消除了 JDBC 大量冗余的代码,不需要手动开关连接;

(3)很好的与各种数据库兼容(因为 MyBatis 使用 JDBC 来连接数据库,所以只要JDBC 支持的数据库 MyBatis 都支持)。

(4)能够与 Spring 很好的集成;

  • mapper层

    其中的方法语句时直接对数据库中的数据进行操作的,mapper层的方法在mybatis中与  .xml文件一一对应

  • xml层


    
    
    
    
    

 

    select * from user

 

column是数据库中的字段

property是要映射成的实体类中的字段

jdbcType是字段类型

二、 获取参数值
  • #{} 和 ${}

${}的本质是字符串拼接,#{}的本质是占位符赋值

第一种${},采用sql拼接,不能防止sql注入



    select * from user where username = #{username}

传入"熊大"  ==>处理后"熊大" 作为一个参数来执行

 

  •  说明
  • 不论是单个参数,还是多个参数,一律都建议使用注解@Param("key"),
    • xml取#{key}
  • 能用 #{} 的地方就用 #{},不用或少用 ${}
  • $符号 =》 sql注入
  • 表名作参数时,必须用 ${}。如:select * from ${tableName}
  • order by 时,必须用 ${}。如:select * from t_user order by ${columnName}
  • 使用 ${} 时,要注意何时加或不加单引号

三、CRUD
  • 批量插入 => foreach

    insert into student (name, img, sex, create_time)
    values
    
        (
        #{student.name,jdbcType=VARCHAR},
        #{student.img,jdbcType=VARCHAR},
        #{student.sex,jdbcType=INTEGER},
        #{student.createTime,jdbcType=TIMESTAMP}
        )
    
int insert(@Param("studentList") List studentList);

 

  •  批量删除

    delete from student where id in
    
        #{item}
    
int delete(@Param("idList") Integer[] idList);

 

  •  动态sql
    •        --标签

用和 进行组合,当条件不成立时,if条件后的内容包括and也不会存在,因此不会对整个sql语句产生影响。注意and关键字要放在每个语句中的库表字段赋值的前面。因为,一旦判断不成功, 会把对应的and关键字去掉(还有or关键字)。


    select * from user
    
        
            
                id=#{id}
            
            
                and username=#{username}
            
            
                and sex=#{sex}
            
        
    

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

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

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