Fluent Mybatis快速入门详细教程

Fluent Mybatis是一个基于Mybatis框架的ORM(对象关系映射)库,它提供了一种更加流畅、直观的方式来操作数据库。下面是完整的Fluent Mybatis快速入门攻略:

安装和配置

  1. 在pom.xml文件中添加以下依赖:
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>${mybatis-spring-boot.version}</version>
</dependency>
<dependency>
    <groupId>cn.org.atool.fluent.mybatis</groupId>
    <artifactId>fluent-mybatis</artifactId>
    <version>${fluent-mybatis.version}</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

其中的${mybatis-spring-boot.version}${fluent-mybatis.version}需要替换成实际的版本号。

  1. application.yml文件中配置数据源和Mybatis:
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/db_example
    username: user
    password: password
mybatis:
  mapper-locations: classpath*:mapper/*Mapper.xml
  type-aliases-package: com.example.model

其中的com.example.model应替换成你的实际的实体类所在的包名。

创建实体类和Mapper接口

  1. 创建实体类,例如:
@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
}

其中的@Data注解是Lombok提供的,用于生成getter、setter和toString等方法。

  1. 创建Mapper接口,例如:
public interface UserMapper extends IBaseMapper<User> {
}

IBaseMapper是Fluent Mybatis提供的一个基本的Mapper接口,用于提供一些基本的CRUD(创建、读取、更新和删除)操作。

创建数据表和Mapper XML

在数据库中创建名为user的表,并在src/main/resources/mapper目录下创建UserMapper.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.example.mapper.UserMapper">
    <resultMap id="BaseResultMap" type="User">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="age" property="age"/>
    </resultMap>

    <sql id="Base_Column_List">
        id, name, age
    </sql>

    <select id="list" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List"/> FROM user
    </select>

    <insert id="save" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
        INSERT INTO user (name, age) VALUES (#{name}, #{age})
    </insert>

    <select id="getById" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List"/> FROM user WHERE id = #{id}
    </select>

    <update id="updateById">
        UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
    </update>

    <delete id="deleteById">
        DELETE FROM user WHERE id = #{id}
    </delete>
</mapper>

使用Fluent Mybatis进行CRUD操作

现在我们已经完成了所有的准备工作,下面我们来看看如何使用Fluent Mybatis进行CRUD操作。

  1. 首先,在Spring Boot的启动类中添加@MapperScan注解,用于扫描Mapper接口:
@SpringBootApplication
@MapperScan("com.example.mapper")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  1. 然后,在需要进行CRUD操作的地方注入IWrapper接口的实例,并调用其相应的方法即可。例如:
@RestController
public class UserController {
    @Autowired
    private IWrapper<User> userWrapper;

    @GetMapping("/users")
    public List<User> list() {
        return userWrapper.lambdaQuery().list();
    }

    @PostMapping("/users")
    public void save(@RequestBody User user) {
        userWrapper.save(user);
    }

    @GetMapping("/users/{id}")
    public User getById(@PathVariable Long id) {
        return userWrapper.lambdaQuery().eq(User::getId, id).one();
    }

    @PutMapping("/users/{id}")
    public void update(@PathVariable Long id, @RequestBody User user) {
        user.setId(id);
        userWrapper.updateById(user);
    }

    @DeleteMapping("/users/{id}")
    public void deleteById(@PathVariable Long id) {
        userWrapper.deleteById(id);
    }
}

其中,userWrapperIWrapper接口的实例,它提供了一些方便的方法来进行CRUD操作。list()方法用于查询所有记录,save()方法用于新增记录,lambdaQuery()方法用于创建一个LambdaQueryWrapper对象,用于构造查询条件。其他方法的用法类似。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Fluent Mybatis快速入门详细教程 - Python技术站

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

相关文章

  • Wallpaper Engine怎么从网页打开 Wallpaper Engine网页打开方法

    以下是“Wallpaper Engine怎么从网页打开 Wallpaper Engine网页打开方法”的完整攻略: Wallpaper Engine怎么从网页打开? Wallpaper Engine是一款功能强大的动态壁纸软件,可以让用户设置各种类型的动态壁纸。在使用Wallpaper Engine时,有时需要从网页打开该软件。下面是一些关于Wallpape…

    html 2023年5月18日
    00
  • PHP解决中文乱码

    下面是“PHP解决中文乱码”的完整攻略: 1. 确认编码格式 在PHP文件中应该添加以下代码,用来声明当前编码格式: header("Content-type:text/html; charset=utf-8"); 在HTML文件中也应该使用以下代码来指定编码格式: <meta http-equiv="Content-Ty…

    html 2023年5月31日
    00
  • PHP实现动态添加XML中数据的方法

    下面是详细讲解“PHP实现动态添加XML中数据的方法”的完整攻略。 1. 确认XML文件路径 在实现动态添加XML数据之前,您需要先确认XML文件的路径。可以使用相对路径或绝对路径。 例如,假设XML文件名为”data.xml”,保存在网站根目录下的”data”文件夹中,那么相对路径应该是”data/data.xml”,绝对路径应该是”/path/to/da…

    html 2023年5月30日
    00
  • 重启电脑后打开VMware提示该虚拟机似乎正在使用中该怎么办?

    重启电脑后打开VMware提示该虚拟机似乎正在使用中该怎么办?完整攻略 VMware是一款虚拟机软件,它允许您在一台计算机上运行多个操作系统。有时,当您重启计算机后,尝试打开VMware时,会出现“该虚拟机似乎正在使用中”的错误提示。以下是解决此问题的详细攻略: 步骤1:确定虚拟机是否正在运行 打开VMware。 检查虚拟机是否正在运行。 如果虚拟机正在运行…

    html 2023年5月17日
    00
  • XML入门教程:XLink-XML/XSLT

    下面是针对“XML入门教程:XLink-XML/XSLT”的完整攻略: XLink 什么是XLink? XLink是XML链接语言(XML Linking Language)的缩写。它是一种在XML文档之间添加超链接的方法。 XLink的核心概念 XLink的核心概念有三种: 链接类型(Link Type):代表超链接的类型,包括如下几种类型: simple…

    html 2023年5月30日
    00
  • javascript学习之json入门

    JavaScript学习之JSON入门 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于 JavaScript 的一个子集,易于人们阅读和编写。JSON以键值对的方式存储数据,类似与JavaScript中的对象。在前后端数据交互中,JSON被广泛使用。 JSON的基本语法 1. JSON…

    html 2023年5月30日
    00
  • 小米手机密码锁忘记了怎么办?如何解决

    如果您忘记了小米手机的密码锁,可以通过以下方法解决: 步骤1:使用MI账号解锁 在小米手机的锁屏界面上,输入错误的密码锁5次。 在弹出的“忘记密码”界面上,选择“使用MI账号解锁”。 输入您的MI账号和密码,单击“确定”。 按照提示操作,完成解锁过程。 步骤2:使用Google账号解锁 在小米手机的锁屏界面上,输入错误的密码锁5次。 在弹出的“忘记密码”界面…

    html 2023年5月17日
    00
  • Android Gradle开发指南详解

    Android Gradle开发指南详解 什么是Gradle? Gradle是一款基于Java的自动化构建工具,用于构建、测试、发布和部署软件。它是一个灵活的、开放的、免费的工具,能够自动化地进行构建,并支持多种编程语言。 什么是Android Gradle? Android Gradle是Android应用程序开发中的一个构建工具,它基于Gradle来构建…

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