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

Mybatis个人小结

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

Mybatis个人小结

MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

持久层

可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏,在断电或者其他情况下,重新开启系统仍然可以读取到这些数据。

优缺点

使用了 MyBatis 之后,只需要提供 SQL 语句就好了,其余的诸如:建立连接、操作 Statment、ResultSet,处理 JDBC 相关异常等等都可以交给 MyBatis 去处理

并且 MyBatis 支持使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

优点: 可以使用巨大的磁盘空间存储相当量的数据,并且很廉价

**缺点:**慢(相对于内存而言)

xml配置



  
    
      
      
        
        
        
        
      
    
  
  
    
  

Mapper.xml



    
	
    select * from user where id = #{id}
	
    
    
    delete from user  where id = #{id}
	
    
    
         insert into user (username,password) values (#{username},#{password})
     
	
    
    update user set username=#{username},password=#{password} where id=#{id}
	


注意:所有的增删改都可以写成update标签

字段不统一



    

$和#
  • #{ }可以防止Sql 注入,它会将所有传入的参数作为一个字符串来处理。
  • $ {} 则将传入的参数拼接到Sql上去执行,一般用于表名和字段名参数,$ 所对应的参数应该由服务器端提供,前端可以用参数进行选择,避免 Sql 注入的风险
mybatis的注解
注解说明
@Insert实现新增
@Delete实现删除
@Update实现更新
@Select实现查询
@Result实现结果集封装
@Results可以与@Result 一起使用,封装多个结果集
@ResultMap实现引用@Results 定义的封装
@One实现一对一结果集封装
@Many实现一对多结果集封装
@SelectProvider实现动态 SQL 映射
@CacheNamespace实现注解二级缓存的使用
动态SQL 多表映射
  • 一对一
  • 一对多
  • 多对多
常用关键词
  • if
  • choose (when, otherwise)
  • trim (where, set)
  • foreach
if

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

choose、when、otherwise

  SELECT * FROM BLOG
  WHERe
  
    state = #{state}
  
  
    AND title like #{title}
  
  
    AND author_name like #{author.name}
  

foreach

常用的sql使用方式 通过类似mybatis-plus插件

不需要手动写crud 查询条件根据条件配置器进行配置查询

动态sql

在mapper.xml映射文件中写的,提高sql的复用性

优缺点
  • 优点:提高开发效率,都有你想生成工具,(动态sql)便于维护
  • 缺点: SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求。SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/601009.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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