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

Mybatis知识点

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

Mybatis知识点

目录

MyBatis简介MyBatis 技术

开发环境的准备environmentsproperties#{}和${}动态SQL

下载网址
https://github.com/mybatis/mybatis-3/

MyBatis简介

1)MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架
2)MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集
3)MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录
4)Mybatis 是一个 半自动的ORM(Object Relation Mapping)框架

为什么要使用MyBatis – 现有持久化技术的对比
1)JDBC
①SQL夹在Java代码块里,耦合度高导致硬编码内伤
②维护不易且实际开发需求中sql有变化,频繁修改的情况多见

2)Hibernate和JPA
①长难复杂SQL,对于Hibernate而言处理也不容易
②内部自动生产的SQL,不容易做特殊优化
③基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难。导致数据库性能下降

3)MyBatis
①对开发人员而言,核心sql还是需要自己优化
②sql和java编码分开,功能边界清晰,一个专注业务、一个专注数据

MyBatis 技术 开发环境的准备

1、导入MyBatis框架的jar包、Mysql驱动包、log4j的jar包
myBatis-3.4.1.jar
mysql-connector-java-5.1.37-bin.jar
log4j.jar

2、导入log4j 的配置文件

3、创建MyBatis的全局配置文件
参考MyBatis的官网手册
(如何连接数据库)




    
    
        
            
            
                
                
                
                
            
        
    
    
    
    
        
    

多个映射mapper

-







4、创建Mybatis的sql(mapper)映射文件
参考MyBatis的官方手册
(如何操作数据库)






    
    select did,dname from dept where did = #{did} 

不同的参数类型,${}和#{}的不同取值的方式:

动态SQL

1)动态 SQL是MyBatis强大特性之一。极大的简化我们拼装SQL的操作

2)动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似

3)MyBatis 采用功能强大的基于 OGNL 的表达式来简化操作
if
choose (when, otherwise)
trim (where, set)
foreach

4)OGNL( Object Graph Navigation Language )对象图导航语言,这是一种强大的
表达式语言,通过它可以非常方便的来操作对象属性。 类似于我们的EL,SpEL等
访问对象属性: person.name
调用方法: person.getName()
调用静态属性/方法: @java.lang.Math@PI
@java.util.UUID@randomUUID()
调用构造方法: new com.atguigu.bean.Person(‘admin’).name
运算符: +,-*,/,%
逻辑运算符: in,not in,>,>=,<,<=,==,!=
注意:xml中特殊符号如”,>,<等这些都需要使用转义字符

if where
1)If用于完成简单的判断.
2)Where用于解决SQL语句中where关键字以及条件中第一个and或者or的问题


		select id , last_name ,email  , gender  
		from tbl_employee 
		
			
				 id = #{id} and
			
			
				 last_name = #{lastName} and
			
			
				 email = #{email} and
			
			
				gender = #{gender}
			
		

set
1)set 主要是用于解决修改操作中SQL语句中可能多出逗号的问题


		update  tbl_employee  
		
			
				 last_name = #{lastName},
			
			
				 email = #{email} ,
			
			
				gender = #{gender} 
			
		
		 where id =#{id}
	

choose(when、otherwise)
choose 主要是用于分支判断,类似于java中的switch case,只会满足所有分支中的一个


		 select id , last_name, email ,gender from tbl_employee where  id in 
		 
		 		#{curr_id}
		 

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

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

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