MyBatis简介与环境搭建(尚硅谷)

MyBatis简介与环境搭建(尚硅谷),第1张

MyBatis的简介

一、MyBatis历史

二、MyBatis的特性

三、MyBatis的下载

四、MyBatis尚硅谷视频地址(2022完整!!!)

五、与其它持久层框架的异同

JDBC

Hibernate 和 JPA

MyBatis

MyBatis环境搭建

项目骨架

数据库表数据

一、创建Maven

二、pom.xml文件

三、创建MyBatis的核心配置文件

mybatis-config.xml

四、创建mapper接口

ProductMapper接口

五、创建MyBatis的映射文件

ProductMapper.xml

六、编写测试类,通过juit进行测试

关于配置文件的细节请看


MyBatis的简介 一、MyBatis历史

MyBatis框架里面是封装了JDBC,用于连接数据库,但是它比原先的JDBC更快速,更高效!

MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁 移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。

代码于 2013年11月迁移到Github。 iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBatis提供的持久层框架 包括SQL Maps和Data Access Objects(DAO)。

二、MyBatis的特性

(1) MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架

定制化SQL表示:在MyBatis中所有的SQL语句都需要我们自己写,不像Hibernate框架可以自动生成。

(2) MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集

(3) MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录(不用写实现类了!)

(4) MyBatis 是一个 半自动的ORM(Object Relation Mapping)框架

三、MyBatis的下载

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

四、MyBatis尚硅谷视频地址(2022完整!!!)

本博客内容是根据尚硅谷的视频写的,该视频的地址是在↓,需要自取,完全免费,链接过期请留言,也可以微信搜索“尚硅谷”公众号,然后自行下载!

链接:https://pan.baidu.com/s/1xCKBjs7pLSoBsxVohnJ09g 
提取码:7j6a 
--来自百度网盘超级会员V3的分享

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

注:pojo包下的Product实体类省略,数据库表以给出,读者自行创建即可! 

数据库表数据

一、创建Maven

不要使用idea默认的Maven地址!使用自己设定的Maven仓库。

二、pom.xml文件


    4.0.0

    com.Harmony
    MyBatis_demo01
    1.0-SNAPSHOT

    
        
        
            org.mybatis
            mybatis
            3.5.3
        

        
        
            mysql
            mysql-connector-java
            8.0.16
        

        
        
            junit
            junit
            4.12
            test
        
    
三、创建MyBatis的核心配置文件

MyBatis的核心配置文件习惯上命名为mybatis-config.xml,但是这只是建议,并非强制要求!

之后整合Spring,这个配置文件可以省略!(因为可以写在spring的配置文件中)

核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息

大致就是如下两件事:

  1. 设置数据库的环境
  2. 引入映射配置文件
mybatis-config.xml
 


    
    
        
        
            
            
            
                
                
                
                
            
        
    

    
    
        
    

四、创建mapper接口 ProductMapper接口
package com.Harmony.dao;

import java.util.List;

public interface ProductMapper {

    /**
     * 添加商品
     */
    int insertProduct();

}
五、创建MyBatis的映射文件

ORM(Object Relationship Mapping)对象关系映射。

  • 对象:Java的实体类对象
  • 关系:关系型数据库
  • 映射:二者之间的对应关系
Java概念数据库概念
属性字段 / 列
对象记录 / 行

1、映射文件的命名规则:

表所对应的实体类的类名+Mapper.xml

例如:表t_user,映射的实体类为User,所对应的映射文件为UserMapper.xml

因此一个映射文件对应一个实体类,对应一张表的 *** 作

MyBatis映射文件用于编写SQL,访问以及 *** 作表中的数据

MyBatis映射文件存放的位置是src/main/resources/mappers目录下

2、MyBatis中可以面向接口 *** 作数据,要保证两个一致:

a>mapper接口的全类名和映射文件的命名空间(namespace)保持一致

b>mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致

ProductMapper.xml
 


    
        insert into product values(105,"电脑",123.23,8)
    

六、编写测试类,通过juit进行测试
package com.Harmony.test;


import com.Harmony.dao.ProductMapper;
import com.Harmony.pojo.Product;
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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MyBatisTest {

    @Test
    public void testInsertMyBatis() throws IOException {

        //加载核心配置文件
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");

        //获取SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

        //通过核心配置文件所对应的字节输入流创建工厂类SqlSessionFactory,生产SqlSession对象
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);

        SqlSession sqlSession = sqlSessionFactory.openSession();

        ProductMapper mapper = sqlSession.getMapper(ProductMapper.class);

        int result = mapper.insertProduct();

        //要提交事务
        sqlSession.commit();

        System.out.println(result);
    }

}

注意:上述测试类的代码,如果没有sqlSession.commit(),即不提交事务,修改数据是不成功的,虽然程序不会报错。或者可以将sqlSessionFactory.openSession()括号里的值该为true,即表示自动提交事务。

关于配置文件的细节请看

MyBatis配置文件标签详解(尚硅谷)_面向鸿蒙编程的博客-CSDN博客https://blog.csdn.net/weixin_43715214/article/details/124613754

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/871486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存