• mybatis复习


    目录

    JDBC、Hibernate和JPA、mybatis比较

    Mybatis使用基本知识:

    使用mybatis


    JDBC、Hibernate和JPA、mybatis比较

    • JDBC
    1. SQL夹杂在Java代码中耦合度高,导致硬编码内伤
    2. 维护不易且实际开发需求中SQL有变化,频繁修改的情况多见
    3. 代码冗长,开发效率低
    • MyBatis
    1. 轻量级,性能出色
    2. SQL和Java编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据。
    3. 开发效率稍逊于HIbernate,但是完全能够接受
    • Hibernate和JPA
    1. 操作简便,开发效率高
    2. 程序中的长难复杂SQL需要绕过框架。
    3. 内部自动生产的SQL,不容易做特殊优化
    4. 基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难。
    5. 反射操作太多,导致数据库性能下降

    Mybatis使用基本知识:

            1.相关概念:ORM (Object Relationship Mapping)对象关系映射。如图:

     

            2.Mybatis具有面向接口编程的功能, Mapper接口相当于Dao。创建流程如图:

     

            3.sqlSession:代表Java程序和数据库之间的会话,而HttpSession是Java程序和浏览器之间的会话

            4.sqlSessionFactory:是"生产"SqlSession的“工厂",这里使用了工厂模式工厂模式:如果创建某一个对象,使用的过程基本固定,那么我们就可以把创建这个对象的相关代码封装到一个“工厂类"中,以后都使用这个工厂类来“生产"我们需要的对象。

    使用mybatis

    映射文件

    
    
    
        
    
            insert into user values (null ,"123465","101")
    
        
    

    接口类

    package mapper;
    
    public interface UserMapper {
        int insert();
    }

    测试类

    package controller;
    
    import mapper.UserMapper;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    public class Controller {
        public static void main(String[] args) throws IOException {
            InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(resourceAsStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            int i = mapper.insert();
            sqlSession.commit();
            System.out.println(i);
        }
    }
    

  • 相关阅读:
    K8S部署相关
    视频剪辑srt字幕的添加步骤,三分钟学会这个方法
    Ajax 笔记/练习
    大数据下一代变革之必研究数据湖技术Hudi原理实战双管齐下-后续
    困扰已久的一个微信bug
    制作一个简单HTML静态网页(HTML+CSS)
    Arctic用于读写真实的A股数据:转债的正股价
    【SpringBoot2】开发实用篇-配置高级
    iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
    创建型模式-建造者模式
  • 原文地址:https://blog.csdn.net/qq_61672548/article/details/125900262