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

学习Mybatis之配置文件

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

学习Mybatis之配置文件

Mybatis之快速入门&配置文件
  • 一、概述
    • what?
    • why?
    • advantage!
  • 二、快速入门
    • 使用步骤
  • 三、映射文件概述
    • 图示
    • 详解
  • 四、核心配置文件
    • 图示:
    • 详解
  • 5、相应API
  • 6、注意的问题

一、概述 what?

1.什么是mybatis?

mybatis是一个半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,具有延迟加载和缓存等特性

2.什么是ORM
ORM(Object Relational Mapping):对象映射关系,采用元数据(配置文件)来描述对象与关系映射的细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。
对象可以是java对象,关系可以指数据库中的关系模型。对象映射关系可以理解为将java中的一个类映射为数据库中的一张表,可以将对象中的各属性映射到数据库表中的各个字段。

why?

1.为什么mybatis是一个半自动的框架?

  • 在mybatis在映射时,仅有基本的字段映射,对象数据以及对象的实际关系任然需要通过手动编写sql来实现和管理。

  • 由于mybatis需要手写sql,使得与数据库的耦合性比较高,移植性比较差。

  • 在日志系统方面,mybatis不是比较完善,仅有基本的记录功能

advantage!

1、相对于传统JDBC有哪些优势?

但相比JDBC,它提供了输入映射和输出映射,可以很方便地进行SQL参数设置,以及结果集封装。并且还提供了关联查询和动态SQL等功能,极大地提升了开发的效率。并且它的学习成本也比hibernate低很多

二、快速入门

以下部分步骤会涉及到一些文件配置方面的知识,这部分在下面的会专门谈到。

使用步骤

1️⃣添加MyBatis坐标

        
            mysql
            mysql-connector-java
            5.1.26
        
        
            org.mybatis
            mybatis
            3.4.6
        

2️⃣ 2、创建user数据表

3️⃣3、编写User实体类

4️⃣编写映射文件UserMapper.xml

该文件主要是用来存放sql语句和映射类型




    
    
        select * from user
    

    
    
        insert into user values (#{id},#{username},#{password})  
    

    
    
        update user set username =#{username} ,password = #{password} where id = #{id}
    
    
    
        delete from user where id = #{id}
    


5️⃣ 编写核心文件SqlMapperConfig.xml

该文件保存的是一些数据的核心配置和加载映射文件




    
    

    
    
        
    

    
    
        
            
            
                
                
                
                
            
            
        
    
    
    
        
    
    


6️⃣编写测试类

 @Test
    //查询操作
    public void Test1() throws IOException {
        //获得核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");

        //获得session工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获得session会话对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行操作,参数:namespace+id
        List userList = sqlSession.selectList("userMapper.findAll");
        //打印数据
        System.out.println(userList);
        //释放资源
        sqlSession.close();

    }

    @Test
    //插入操作
    public void Test2() throws IOException {
        //模拟user对象

        User user = new User();
        user.setUsername("tom");
        user.setPassword("123456");




        //获得核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");

        //获得session工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获得session会话对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行操作,参数:namespace+id
        sqlSession.update("userMapper.update",user);
        //如果执行更新操作,要执行更新操作
        sqlSession.commit();

        //释放资源
        sqlSession.close();

    }

7️⃣输出结果(查询)

三、映射文件概述 图示

详解
  • 约束头:对文件的格式和形式进行约束,如第一行指定该文件是xml类型,版本号1.0,指定编码是UTF-8;第二行则引入了mybatis,会在添加标签是给出相应的提示。



-mapper标签:namespace参数为命名空间,与子标签的id组成查询语句,用法如下:



.....



  • select/update/insert等,与父标签mapper一起组成查询语句

    
    

四、核心配置文件 图示:

关于事务管理和数据源类型

事物管理: 事物管理分为两种,JDBC&MANAGED

数据源类型: 一共有如下几种,其中第二种常用

详解

层级关系

  • environments标签:主要是配置数据源(数据库)环境,支持多环境配置如果都多环境,可以指定默认的环境名称
    
        
            
            
                
                
                
                
            
            
        

-mappers(映射文件)标签:该标签主要用于加载映射文件



  • typeAliases标签:可以给映射的实体对象定义别名,注意标签位置要遵循跟标签内的顺序原则,否则会导致跟标签报错。
    
    
        
    

此外mybatis还提供了一些常见数据类型的别名,通过编写对应的别名可以自动识别数据类型。

5、相应API 6、注意的问题

在进行CRUD操作时,由于session工厂会调用openSessionAPI并返回给Sql会话对象,此时会默认开启事物,但不会提交事务。由于查询操作不涉及事务提交,而插入、修改、删除会对数据库数据进行改变。因此需要进行事务提交(commit)

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

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

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