MyBatis集成方法是什么

这篇文章主要介绍“MyBatis集成方法是什么”,在日常操作中,相信很多人在MyBatis集成方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MyBatis集成方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

站在用户的角度思考问题,与客户深入沟通,找到固安网站设计与固安网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖固安地区。

1 概述

MyBaits是一个著名的持久层框架,本文首先介绍了MyBatis的简单使用,接着与Spring进行整合,最后简单地使用了Generator去自动生成代码。

2 MyBatis简介

MyBatis本来是Apache的一个开源项目——iBatis,2010年由Apaceh Software Foundation迁移到了Google Code,并改名为MyBatis

MyBatis是一个基于Java的持久层框架,提供的持久层框架包括SQL MapsData Access Objects,使用简单的XML或者注解用于配置映射,将接口和POJO映射成数据库中的记录,是一个小巧、方便、高效、简单、直接、半自动化的持久层框架。

3 工作原理

上图:

MyBatis集成方法是什么

  • 读取配置文件:mybatis-config.xml是全局MyBatis配置文件,配置了MyBatis运行环境信息

  • 加载映射文件:也就是SQL映射文件,配置了操作数据库的SQL语句

  • 构造会话工厂:通过配置文件构造会话工厂SqlSessionFactory

  • 创建会话对象:由上一步的会话工厂创建会话对象SqlSession

  • 获取MapperStatement:通过用户调用的apiStatement ID获取MapperStatement对象

  • 输入参数映射:通过ExecutorMapperStatement进行解析,将各种Java基本类型转化为SQL操作语句中的类型

  • 输出结果映射:JDBC执行SQL后,借助MapperStatement的映射关系将返回结果转化为Java基本类型并返回

4 MyBatis示例

首先先来看一下纯MyBaits的示例,没有整合Spring,一个简单的Maven工程,项目结构如下:

MyBatis集成方法是什么

4.1 依赖


    org.mybatis
    mybatis
    3.5.5



    org.projectlombok
    lombok
    1.18.12




    mysql
    mysql-connector-java
    8.0.21

Gradle

compile group: 'org.mybatis', name: 'mybatis', version: '3.5.5'
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.21'

4.2 实体类

@Setter
@Getter
@Builder
public class User {
    private Integer id;
    private String name;

    @Override
    public String toString() {
        return "id:"+id+"\tname:"+name;
    }
}

4.3 映射文件

新建一个叫UserMapper.xml的映射文件:




    
        select * from user where id=#{id}
    
    
        select * from user
    

    
        INSERT INTO `user` (`id`,`name`)
        VALUES (#{id},#{name})
    

    
        UPDATE `user` set `name`=#{name} where id=#{id}
    

    
        DELETE FROM `user` WHERE `id` = #{id}
    

映射文件是一个XML文件,根元素为,需要注意其中的namespace属性,调用的时候通过该namespace调用。其中的子元素表示SQL语句:

  •              select * from user                   INSERT INTO `user` (`id`,`name`)         VALUES (#{id},#{name})                   UPDATE `user` set `name`=#{name} where id=#{id}                   DELETE FROM `user` WHERE `id` = #{id}     

    namespace需要与对应包名的带有@Mapper的类配置一致。

    5.2.2 MyBatis配置文件

    
    
    
        
            
        
    

    5.2.3 Spring配置文件

    
    
    
        
        
        
        
            
            
            
            
            
            
            
            
        
        
        
        
            
        
    
    	
        
    
    	
        
            
            
        
    
    	
        
            
            
        
    

    5.3 持久层

    需要加上@Mapper注解,表示自动装配为MyBatis的映射接口,注意:

    • 映射文件中的namespace需要与包名.类名对应,比如这里的包为pers.dao,类名为UserDao,那么映射文件中的namespacepers.dao.UserDao

    • id需要与方法名对应,比如映射文件中的有一条select语句的idselectById,那么方法就需要命名为selectById,且参数类型需要对应一致

    @Repository
    @Mapper
    public interface UserDao {
        User selectById(Integer id);
        List selectAll();
        int insert(User user);
        int update(User user);
        int delete(Integer id);
    }

    5.4 业务层

    @Service
    @Transactional
    @RequiredArgsConstructor(onConstructor = @__(@Autowired))
    public class MyBatisService {
        private final UserDao dao;
    
        public void test(){
            User user = dao.selectById(13);
            System.out.println(user);
            dao.insert(User.builder().name("333").build());
            dao.update(User.builder().name("88888").id(13).build());
            dao.selectAll().forEach(System.out::println);
            dao.delete(12);
            dao.selectAll().forEach(System.out::println);
        }
    }

    注入UserDao后进行简单的测试,结果如下:

    MyBatis集成方法是什么

    6 自动生成代码

    相信很多程序员也讨厌写又长又麻烦的XML配置文件,因此,MyBatis也提供了一个生成器插件,可以直接从表中生成实体类、dao接口以及映射文件,可以省去很多操作。

    步骤如下:

    • 导入依赖

    • 编写Generator配置文件

    • 生成代码

    6.1 依赖

    其实就是加入一个插件:

    
        
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.4.0
                
                    
                    true
                    
                    true
                    src/main/resources/generatorConfig.xml
                
                
                    
                        mysql
                        mysql-connector-java
                        8.0.21
                    
                
            
        
    

    数据库驱动请对应修改。

    至于Gradle版请看Kotlin版源码。

    6.2 配置文件

    这里是参考别人的配置文件,修改数据库连接、表名、包名即可:

    
    
    
        
        
        
        
            
            
                
                
                
            
            
            
            
            
                
                
                
                
            
            
            
            
                
                
                
                
                
                
                
                
            
            
            
                
                
            
            
            
            
            
            
        
    

    6.3 生成代码

    MyBatis集成方法是什么

    双击生成即可:

    MyBatis集成方法是什么

    生成了实体类、dao接口以及mapper文件。

    到此,关于“MyBatis集成方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


    文章标题:MyBatis集成方法是什么
    URL链接:http://hbruida.cn/article/jeepie.html