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

MyBatis使用和配置Demo【入门级】

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

MyBatis使用和配置Demo【入门级】

目录

1、Mybatis简介

2、Maven依赖

3、MyBatis配置文件详解

3.1、Mybatis配置文件骨架

3.2、properties标签

3.3、事务的管理和连接池的配置

3.3.1、environments标签

3.3.2、environment标签

3.3.3、transactionManager标签

3.3.4、dataSource标签

3.3.5、property标签

3.4、mappers映射器

3.4.1、映射方式一(需修改)

3.4.2、映射方式二

3.4.3、映射方式三(需修改)

4、Mapper文件

4.1、mapper文件骨架

4.2、增删改查配置

5、实战

5.1、Mybatis文件配置(核心)

5.2、goods表结构

5.3、mapper配置(Dao层实现)

5.4、SqlSession工具类

5.5、业务层实现

5.6、测试

5.6.1、测试类

5.6.2、初始表

5.6.3、输出结果


1、Mybatis简介
  • MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。
  • MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
  • MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
  • 通过MyBatis框架来实现Dao层接口

2、Maven依赖
  • 整个Demo使用Maven搭建。
  • MyBatis的Maven依赖:

    org.mybatis
    mybatis
    3.5.7

3、MyBatis配置文件详解

3.1、Mybatis配置文件骨架
  • 所有配置信息都放置在configuration标签内



    

3.2、properties标签
  • properties 标签中的配置可以提供整个配置文件使用,在任何位置都可以引入其中配置的值
  • properties 标签可以通过子标签 property 标签来配置一些子元素信息,也可以配置外部的动态文件

导入配置文件

3.3、事务的管理和连接池的配置
    
        
            
            
                
                
                
                
            
        
    

3.3.1、environments标签
  • environment的复数,中文意思:环境。
  • MyBatis可以配置多种环境 ,default指定默认使用某种环境,可以达到快速切换环境。

3.3.2、environment标签
  • environments的子标签
  • 配置一个具体的环境信息
  • id代表当前环境的唯一标识

3.3.3、transactionManager标签
  • environment子标签
  • 中文意思:事务管理器
  •  type属性:事务管理器的类型,可选两者其一:JDBC(JdbcTransactionFactory:Jdbc事务工厂 )  |  MANAGED(ManagedTransactionFactory)
  • 使用JDBC事务管理机制,就是利用java.sql.Connection对象完成对事务的提交。
  • 使用MANAGED事务管理机制,这种机制Mybatis自身不会去实现事务管理,而是让程序的WEB容器(JBOSS,WebLogic,Tomcat)来实现对事务的管理
  • 自定以事务管理器:实现TransactionFactory接口。(那么type属性就是全类名)

3.3.4、dataSource标签
  • type:数据源类型有UNPOOLED(UnpooledDataSourceFactory)、POOLED(PooledDataSourceFactory)、JNDI(JndiDataSourceFactory)。
  • 自定义数据源:实现DataSourceFactory接口,type是全类名。

3.3.5、property标签
  • name和value就是键值对,在properties配置文件中取得

3.4、mappers映射器
  • 只有配置了 mappers 信息后,MyBatis 才知道去哪里加载 Mapper 映射文件。
  • 在日常开发中,可以根据项目中 Mapper 的配置偏好,选择整合配置文件的配置方式。

3.4.1、映射方式一

mapper标签,通过resource属性引入classpath路径的相对资源


    

3.4.2、映射方式二

package标签,通过name属性指定mapper接口所在的包名 ,此时对应的映射文件必须与接口位于同一路径下,并且名称相同

  • 如mapper接口采用注解的方式,则无需映射文件
  • windows系统下,映射文件不区分大小写,linux系统没有验证

    
    

3.4.3、映射方式三

mapper标签,通过class属性指定mapper接口名称,此时对应的映射文件必须与接口位于同一路径下,并且名称相同

  • 如mapper接口采用注解的方式,则无需映射文件
  • windows系统下,映射文件不区分大小写,linux系统没有验证

    

4、Mapper文件

4.1、mapper文件骨架
  • 所有增删改查都写在mapper标签内




4.2、增删改查配置

    
    
        
        
        
        
        
    

    
        select * from goods
    

    
        delete from goods where id = #{id}
    

    
        insert into goods (goods_name,goods_type,goods_price,goods_num)
        values (#{goods.goodsName},#{goods.goodsType},#{goods.goodsPrice},#{goods.goodsNum})
    

    
        update goods
        set goods_price = #{value}
        where id = #{id}
    


5、实战

实战过程中遇到的一些问题

项目结构

maven的pom.xml配置



    4.0.0

    org.example
    MybatisDemo
    1.0-SNAPSHOT

    
        
            junit
            junit
            4.13
        
        
        
            mysql
            mysql-connector-java
            8.0.22
        
        
        
            org.mybatis
            mybatis
            3.5.7
        

    
    
    
        
            
                src/main/java
                
                    **/*.xml
                
                true
            
        
    

5.1、Mybatis文件配置(核心)

mybatisConfig.xml





    

    
        
            
            
                
                
                
                
            
        
    

    
        
    


db.properties配置文件

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/goods_manage?useSSL=false&&serverTimezone=UTC&&allowPublicKeyRetrieval=true&&characterEncoding=utf8
username=root
password=1234

5.2、goods表结构

5.3、mapper配置(Dao层实现)

定义GoodsMapper接口

package com.han.Dao;

import com.han.pojo.Goods;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface GoodsMapper {
    void insertGoods(@Param("goods")Goods goods);
    void deleteGoods(@Param("id") Integer id);
     void updateGoods(@Param("id") Integer id, @Param("value")T value);
    List selectGoods();
}

 配置GoodsMapper.xml文件