菜鸟的mybatis实战教程

下面是关于“菜鸟的mybatis实战教程”的完整攻略:

1. MyBatis简介

MyBatis是一款优秀的持久层框架,支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以通过XML或注解的方式进行配置,提了非常灵活的配置方式。

2. MyBatis实战教程

以下是MyBatis实战教程的步骤:

步骤1:创建Maven项目

首先,我们需要创建一个Maven项目。在pom.xml文件中添加MyBatis和MySQL的依赖。

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
</dependencies>

步骤2:创建数据库

接下来,我们需要创建一个MySQL数据库,并创建一个名为user的表格。

CREATE TABLE user (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(20) DEFAULT NULL,
  age INT(11) DEFAULT NULL,
  PRIMARY KEY (id)
);

步骤3:创建MyBatis配置文件

在src/main/resources目录下创建一个名为mybatis-config.xml的文件,并添加以下内容:

<?xml version="10" 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"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&amp;serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

步骤4:创建Mapper接口

在src/main/java目录下创建一个名为com.example.mapper的包,并在该包下创建一个名为UserMapper.java的。

package com.example.mapper;

import com.example.entity.User;

public interface UserMapper {
    User getUserById(int id);
    void addUser(User user);
}

步骤5:创建Mapper XML文件

在src/main/resources/mapper目录下创建一个名为UserMapper.xml的文件,并添加以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<! mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <select id="getUserById" parameterType="int" resultType="com.example.entity.User">
        SELECT * FROM user WHERE id = #{id}
    </select>
    <insert id="addUser" parameterType="com.example.entity.User">
        INSERT INTO user (name, age) VALUES (#{name}, #{age})
    </insert>
</mapper>

步骤6:测试MyBatis

在src/test/java目录下创建一个名为com.example的包,并在该包下创建一个名为MyBatisTest.java的测试类。

package com.example;

import com.example.entity.User;
import com.example.mapper.UserMapper;
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.InputStream;

public class MyBatisTest {
    @Test
    public void testMyBatis() {
        // 加载MyBatis配置文件
        InputStream inputStream = MyBatisTest.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        // 获取SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 获取Mapper接口
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        // 测试查询
        User user = userMapper.getUserById(1);
        System.out.println(user);

        // 测试插入
        User newUser = new User();
        newUser.setName("Tom");
        newUser.setAge(20);
        userMapper.addUser(newUser);
        sqlSession.commit();

        // 关闭SqlSession
        sqlSession.close();
    }
}

在这个示例中,我们使用MyBatis查询和插入MySQL数据库中的数据。

示例1:查询数据

在上面的测试类中,我们使用getUserById方法查询id为1的用户信息。

```java// 获取Mapper接
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

// 测试查询
User user = userMapper.getUserById(1);
System.out.println(user);


### 示例2:插入数据

在上面的测试类中,我们使用`addUser`方法插入一条新的用户信息。

```java
//Mapper接口
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

// 测试插入
User newUser = new User();
newUser.setName("Tom");
newUser.setAge(20);
userMapper.addUser(newUser);
sqlSession.commit();

3. 注意事项

在使用MyBatis时,需要注意以下几点:

  • MyBatis需要正确的配置文件和依赖。
    Mapper接口和XML文件正确的命名和配置。
  • SQL语句需要正确的书写和参数绑定。

4. 结论

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。使用MyBatis可以避免几乎所有的JDBC代码和手动设置参数以获取结果集。以上是关于“菜鸟的MyBatis实战教程”的完整攻略。

另外,示例1和示例2已经在上面的代码中给出了详细的说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:菜鸟的mybatis实战教程 - Python技术站

(0)
上一篇 2023年5月7日
下一篇 2023年5月7日

相关文章

  • mysql索引过长Specialed key was too long的解决方法

    当在MySQL中创建索引时,有时会遇到以下错误: Specified key was too long; max key length is 767 bytes 这是因为MySQL在创建索引时有最大长度限制。而且,由于MySQL的字符集和编码方式有很多,因此这个长度限制会因为使用的字符集和编码方式而有所不同。例如,在使用UTF-8字符集时,最大的索引长度为7…

    other 2023年6月27日
    00
  • Java Dubbo框架知识点梳理

    Java Dubbo框架知识点梳理 1. 什么是 Dubbo Dubbo 是一款高性能 Java RPC 框架,它提供了服务治理、降级、容错、负载均衡、分流、路由、动态配置等基础能力,同时还支持多种协议、多种注册中心、多种负载均衡方式。Dubbo 可以帮助开发者快速构建分布式应用。 2. Dubbo 核心概念 2.1 服务提供者 Provider 提供服务的…

    other 2023年6月27日
    00
  • C语言关键字之auto register详解

    当编写C程序时,我们使用各种变量,函数和关键字。其中关键字指的是C语言定义为具有特殊含义和用途的单词,这些单词不能用作变量名或函数名。本文将详细解释C语言中的两个关键字之一:auto和register。 auto关键字 概述 auto关键字用于定义自动变量,即生存期与所在函数或块相同的变量。auto关键字可以用于函数中的局部变量以及块中的局部变量,也可以省略…

    other 2023年6月27日
    00
  • SpringCache缓存自定义配置的实现

    下面是关于SpringCache缓存自定义配置的实现的详细攻略: 1. 为什么要自定义SpringCache配置? SpringCache是Spring框架提供的一种缓存组件,对于一些需要重复读取的数据,使用缓存可以减少操作数据库的次数,提升系统性能。但是,使用SpringCache默认配置会有一些限制,比如缓存的过期时间无法动态配置,缓存数据的存储格式默认…

    other 2023年6月25日
    00
  • 如何查看自己的身份证绑定了哪些支付宝账号?(附两种查询方法)

    以下是关于如何查看自己的身份证绑定了哪些支付宝账号的完整攻略,包含两种查询方法: 查看自己的身份证绑定了哪些支付宝账号的方法 方法一:通过支付宝APP查询 打开支付宝APP,点击底部的【我的】按钮; 在【我的】页面中,点击右上角的【设置】按钮; 在【设置】页面中,点击账号中心中的【支付账号】选项; 在支付账号页面中,选择【绑定银行卡】并输入支付密码; 在绑定…

    other 2023年6月27日
    00
  • Linux系统基本的内存管理知识讲解

    Linux系统基本的内存管理知识讲解 1. 内存管理概述 在Linux系统中,内存管理是操作系统的重要功能之一。它负责管理系统中的物理内存,包括分配、释放和保护内存资源。下面将详细介绍Linux系统中的内存管理知识。 2. 内存分配 Linux系统使用虚拟内存管理机制,将物理内存划分为固定大小的页面(通常为4KB)。内存分配的主要方式有两种: 2.1 静态内…

    other 2023年8月1日
    00
  • Win11 Build 22000.1515 Release 预览版发布(附 KB5019274更新内容大全)

    Win11 Build 22000.1515 Release 预览版发布攻略 1. 简介 Win11 Build 22000.1515 Release 是Windows 11操作系统的最新预览版,本攻略将详细介绍该版本的发布以及附带的 KB5019274 更新内容。 2. 发布步骤 以下是安装 Win11 Build 22000.1515 Release 的…

    other 2023年8月3日
    00
  • vim进入粘贴模式

    Vim进入粘贴模式的完整攻略 Vim是一种常用的文本编辑器,可以在Linux、Unix和Mac OS X等操作系统中使用。在Vim中,有时需要进入粘贴模式,以便更好地处理复制和粘贴的文本。本文将介绍如何进入Vim的粘贴模式,并提供两个示例说明。 进入粘贴模式 在Vim中,可以使用以下命令进入粘贴模式: :set paste 这个命令将Vim设置为粘贴模式,以…

    other 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部