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

MyBatis学习记录

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

MyBatis学习记录

文章目录

一、框架作用二、properties使用文件三、全局配置文件三、映射文件(魔法源泉!)

1、参数处理规则

(1)单个参数(2)多个参数 (3)使用POJO传递多个参数(4)使用Map来传递(4 )使用TO(5)#和¥区别2、select语句

(1)、返回List(2)、返回多条记录Map集合(3)、resultMap自定义映射规则(4)、联表查询

1、最基础联表查询2、使用association分布式查询3、使用collection进行分布式查询 四、动态SQL五、缓存六、整合Spring等框架

一、框架作用

作为数据库整体解决方案,解决了高耦合的问题,ORM(object relation mapping)把javabean与数据库一一映射,把JDBC的操作封装


但是编写sql需要手动进行,所以mybatis把sql与java编码分离,是半自动框架

二、properties使用文件

将数据库配置信息放到properties文件中,在mybatis.xml文件中引用为reousrces
properties文件

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis?serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=123456

xml文件

    
        
    
``

```java
    
        
            
            
                
                
                
                
            
        
    
三、全局配置文件

在mubatis_config.xml文件名中
可以设置自动驼峰命名,还有其他参数之后再学

    

貌似不是很建议用这个参数

    

之后做了多库再来看这个文件

    

三、映射文件(魔法源泉!) 1、参数处理规则 (1)单个参数

mb不做任何处理
#{参数名}:取出参数值

(2)多个参数

mb做特殊处理
多个参数会被封装成一个map
key:param1…paramN,或者参数的索引
value:传入的参数值
#{}就是从map获取指定的key值
推荐使用命名参数:明确指定封装的map和key

public Employee getEmp(@Param("id")Integer id, @Param("lastName")String last_name);

接口定义参数

    
        select * from tbl_employee where last_name like #{lastName}
    

Mapper接口文件

public List getEmpsByLastNameLike(String lastName);

Test文件就可以使用通配符查询方式查询多个对象返回集合

List like = mapper.getEmpsByLastNameLike("%a%");
(2)、返回多条记录Map集合

Mapper.xml文件

    
    
        select  * from tbl_employee where id=#{id};
    

比如上面我们把邮箱和名字的映射换了一下,于是测试类输出

Employee{id=1, last_name='ustc.com', email='tom', gender='0'}

真的是非常的灵活哈

(4)、联表查询 1、最基础联表查询

表结构


Mapper.xml文件

    
        
        
        
        

        
            
            
        
    
    
    
    
        select id, dept_name deptName from tbl_dept where id=#{id}
    

分布式查询

    
    
        
        
        
        
        
        
        
    
    
    
        select id, dept_name deptName from tbl_dept where id=#{id}
    

    
    
    
        
        
        
        
            
            
            
            
            
        
    
    
        select * from tbl_employee where d_id=#{dept_id}
    

在部门mapper中定义分布式查询语句

    
        
        
        
    
    
    

由于emps集合属性是存在于公司javabean中,不存在于公司数据库的列属性中,所以select中不含emps属性,而是通过resultMap中的collection来返回属性进行封装

四、动态SQL 五、缓存
    


六、整合Spring等框架
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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