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

1、什么是MyBatis?

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

2、注入相关Maven依赖

<!--Mysql驱动 -->
		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.29</version>
        </dependency>

		<!--Mybatis核心 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.10</version>
        </dependency>

		<!--junit测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>

3、MyBatis核心配置文件

mybatisConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    
  <!--配置连接数据库的环境-->
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
    
  <!--引入映射文件-->
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
    
</configuration>

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

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chao.LogoDemo.mapper.moviesMapper">
<insert id="insertMovie">
    insert into Movies values (null,'倚天屠龙记','张无忌',5,200,45,12);
</insert>

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属性类型不一致时)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值