美文网首页
MyBatis入门教程 初体验

MyBatis入门教程 初体验

作者: 八筒是只奶牛猫 | 来源:发表于2023-02-03 16:22 被阅读0次

MyBatis

简介

什么是MyBatis

MyBatis是一款可以通过XML配置或注解,实现面对接口建立sql和普通对象的关系,实现自定义sql的持久层框架.

如何在项目中使用MyBatis

引入依赖

在maven项目中,引入对应的依赖


<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>

    <artifactId>MyBatis</artifactId>

    <version>1.0-SNAPSHOT</version>

    <properties>

        <maven.compiler.source>8</maven.compiler.source>

        <maven.compiler.target>8</maven.compiler.target>

    </properties>

    <dependencies>

<!--        mysql8驱动-->

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

            <version>8.0.19</version>

        </dependency>

<!--        测试类依赖-->

        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

            <version>4.11</version>

            <scope>test</scope>

        </dependency>

<!--        MyBatis依赖-->

        <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis</artifactId>

            <version>3.5.7</version>

        </dependency>

<!--        log4j依赖-->

        <dependency>

            <groupId>log4j</groupId>

            <artifactId>log4j</artifactId>

            <version>1.2.17</version>

        </dependency>

    </dependencies>

</project>

配置mybatis-config.xml

在resources根目录下创建名为mybatis-config.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="com.mysql.cj.jdbc.Driver"/>

                此处使用的是mysql8 需要指定时区

                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai"/>

                <property name="username" value="你自己的用户名"/>

                <property name="password" value="你自己的密码"/>

            </dataSource>

        </environment>

    </environments>

    <mappers>

        <mapper resource="mappers/UserMapper.xml"/>

    </mappers>

</configuration>

创建mapper.xml

mapper.xml是存储实际自定义SQL语句的地方,与Mapper接口的方法一一对应形成映射

在resourcces根目录下创建mappers文件夹,用于存储各个mapper.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.atguigu.mybatis.mapper.UserMapper">

    <!--int insertUser()-->

    <insert id="insertUser">

        insert into t_user value (null , "admin", "123456", 23, "男", "123456@qq.com")

    </insert>

    <!--int updateUser()-->

    <update id="updateUser">

        update t_user set username = "张三" where id = 1

    </update>

    <!--void deleteUser()-->

    <delete id="deleteUser">

        delete from t_user WHERE id = 8

    </delete>

    <!--User getUserById()-->

    <!--

    查询功能必须设置 resultType 或 resultType

    resultType:设置默认的映射关系(字段名和属性名一致的情况使用)

    resultMap:自定义映射(字段名和属性名不一样的时候,或者一对多的情况使用)

    -->

    <select id="getUserById" resultType="com.atguigu.mybatis.pojo.User">

        select * from t_user where id = 1

    </select>

    <!--List<User> getAllUser();-->

    <select id="getAllUser" resultType="com.atguigu.mybatis.pojo.User">

        select * from t_user

    </select>

</mapper>

创建Mapper映射的接口

MyBatis可以面对接口编程,不需要开发人员手动指定实现类


package com.atguigu.mybatis.mapper;

import com.atguigu.mybatis.pojo.User;

import java.util.List;

public interface UserMapper {

    /** MyBatis面向接口编程的两个一致:

    * 1. mapper接口映射文件namespace需要和mapper接口的全类名保持一致.

    * 2. 映射xml文件中的SQL语句id需要和mapper接口中的方法名一致.

    */

    /**

    * 添加用户信息

    */

    int insertUser();

    /**

    * update用户信息

    */

    int updateUser();

    /**

    * delete用户信息

    */

    void deleteUser();

    /**

    * 查询用户信息

    */

    User getUserById();

    /**

    * 查询所有用户信息

    */

    List<User> getAllUser();

}

测试MyBatis


@Test

    public void addUser() {

        try {

            // 使用xml文件创建inputSteam对象

            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");

            // 使用inputSteam对象创建sqlSessionFactoryBuilder

            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

            // 获取sqlSessionFactory

            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);

            // 获取sqlSession会话 通过这个会话可以操作MyBatis的功能 参数传入一个布尔值代表自动提交事务

            SqlSession sqlSession = sqlSessionFactory.openSession(true);

            // 获取mapper接口对象

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

            // 测试功能

            int result = mapper.insertUser();

            System.out.println(result);

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

结果已经插入数据库

image.png

MyBatis mapper 对象创建流程

image.png

idea项目目录

image.png

相关文章

  • PHP + Swoole2.0 初体验(swoole入门教程)

    PHP + Swoole2.0 初体验(swoole入门教程) 环境:centos7 + PHP7.1 + swo...

  • Maven学习(一)

    Mybatis初体验——在maven基础下配置Mybatis maven学习(一)——使用映射器 前言通过上文对M...

  • 阅读Mybatis文档笔记(一)

    笔记是在我使用过mybatis后再读文档的记录,不是入门教程。 一、基本原理 官方解释: 每个基于 MyBatis...

  • Mybatis generator 1.4.x 入门教程

    Mybatis generator 1.4.x 入门教程 一、前言 ​ 最近因为公司开了新的项目,所以...

  • Mybatis初体验

    内容介绍 本文通过一个demo演示Mybatis是如何使用的,不涉及与spring集成相关。本文使用mysql进行...

  • 【MyBatis】初体验

    Spring框架的学习告一段落,重点学习了IoC和AOP的概念以及应用,接下来本篇进入Mybatis的学习。 一、...

  • mybatis入门教程

    1 什么是mybatis 2 orm工具的基本思想 3mybatis in action 3.1mybatis i...

  • Mybatis入门教程

    简介 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有...

  • mybatis demo 初体验

    demo 是根据 mybatis 官方给出的示例来写的。平是我们都是止步于会用,但是如果只是到这一层就不继续深入的...

  • MyBatis学习总结(一)——MyBatis初体验

    github同步更新博客同步更新简书同步更新参考原文地址项目地址:传送门 1、创建表结构 2、环境配置 首先右键项...

网友评论

      本文标题:MyBatis入门教程 初体验

      本文链接:https://www.haomeiwen.com/subject/xcjnhdtx.html