MyBatis通过映射实现简单的添加数据操作

1、什么是MyBatis?

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

2、注入相关Maven依赖


		
            mysql
            mysql-connector-java
            8.0.29
        

		
        
            org.mybatis
            mybatis
            3.5.10
        

		
        
            junit
            junit
            4.13.2
            test
        

3、MyBatis核心配置文件

mybatisConfig.xml




    
  
  
    
      
      
        
        
        
        
      
    
  
    
  
  
    
  
    

4、创建properties配置文件

jdbc.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_Cinema
jdbc.username=root
jdbc.password=123456

5、创建mapper接口

moviesMapper.java

package com.chao.LogoDemo.mapper;

public interface moviesMapper {
/*
* Mybatis面向接口有两个一致
* 1.对应的Mapper(映射文件) 配置文件的namespace应该与Mapper的接口文件全类名一致
* 2.对应的Mapper(映射文件) 配置文件的id与Mapper的接口方法名一致
* */

/*
* 添加电影,返回值int为受影响的行数
* */
    int insertMovie();
}

6、创建映射文件

moviesMapper.xml





    insert into Movies values (null,'倚天屠龙记','张无忌',5,200,45,12);

7、测试MyBatis

TestMybatis.java

package com.chao.LogoTest;

import com.chao.LogoDemo.mapper.moviesMapper;
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;

public class MovieTest {
    /*
    * 默认不提交事务,在openSession方法里设为true为自动提交事务
    * */

    @Test
    public void mybatisTest() throws IOException {
        //加载配置文件
        InputStream is = Resources.getResourceAsStream("mybatisConfig.xml");
        //获取SqlSessionFactoryBuilder
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //获取SqlSessionFactory
        SqlSessionFactory SqlSessionFactory = sqlSessionFactoryBuilder.build(is);
        //获取SqlSession
        SqlSession sqlSession = SqlSessionFactory.openSession(true);
        //获取Mapper接口对象
        moviesMapper mapper = sqlSession.getMapper(moviesMapper.class);
        //测试功能
        int result = mapper.insertMovie();
        //提交事务
//        sqlSession.commit();
        System.out.println("受影响的行数:" + result);
    }
}java

8、注意事项

  • Mybatis面向接口有两个一致

  1. 对应的Mapper(映射文件) 配置文件的namespace应该与Mapper的接口文件全类名一致

  2. 对应的Mapper(映射文件) 配置文件的id与Mapper的接口方法名一致

  • Mybatis中pojo,Mapper接口,Mapper映射文件都对应Mysql数据库中的一个表

  • Mybatis核心配置文件中resource的路径是"/",不是"."

  • Mybatis测试类中SqlSession默认不提交sql事务,需要在openSession方法参数里设为True,自动提交sql事务

  • Mapper映射文件下的查询功能标签必须设置resultType或resultMap

  1. resultType:设置默认的映射关系

  2. resultMap:设置自定义的映射关系(Mysql条目名类型与pojo属性类型不一致时)

你可能感兴趣的:(mybatis,java,mysql)