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日

相关文章

  • Python中json库的操作指南

    下面是详细讲解“Python中json库的操作指南”的完整攻略。 什么是JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语言的子集,但也可以使用其它编程语言来解析生成。JSON的特点是数据结构简单清晰,易于读写,同时也易于机器解析和生成。 JSON在Python中的操作 Py…

    html 2023年5月30日
    00
  • 什么是 WML?

    WML(Wireless Markup Language)是一种针对移动设备的标记语言。它主要用于创建在低带宽和小屏幕设备上运行的网站。WML是一种用于编写 WAP(Wireless Application Protocol)页面的语言。 WML 页面能够使用 WAP 浏览器在移动设备上进行访问,WML 页面的设计目的主要是兼容移动设备(如手机、平板电脑等小…

    html 2023年5月30日
    00
  • java web返回中文乱码问题及解决

    Java Web返回中文乱码问题及解决 在Java Web开发中,我们常常需要在网页上显示一些中文字符,但是在返回中文字符时经常会出现乱码的情况。本文将介绍Java Web返回中文乱码问题的原因及解决方法,帮助你解决这个问题。 问题原因 在Java Web中,如果直接返回中文字符串,由于默认编码是ISO-8859-1,因此在浏览器中显示出来的是乱码。 解决方…

    html 2023年5月31日
    00
  • html5中的input新属性range使用记录

    下面是关于 “HTML5中的input新属性range使用记录” 的详细攻略: 简介 <input type=”range”> 是 HTML5 中新添加的表单元素之一,它用于让用户在给定的范围内选择一个数值,类似于滑动条的效果。本文将介绍 <input type=”range> 的使用方法。 属性 <input type=”ra…

    html 2023年5月31日
    00
  • python批量修改xml属性的实现方式

    针对“Python批量修改XML属性的实现方式”的问题,我们可以按照以下步骤来实现: 1. 解析XML文件 首先,我们需要使用Python内置库xml.etree.ElementTree来加载待处理的XML文件,并将其解析为一个树形结构,这样我们才能更方便地操作其中的元素和属性。 示例代码如下: import xml.etree.ElementTree as…

    html 2023年5月30日
    00
  • 小红书怎么样才能有收益

    以下是“小红书怎么样才能有收益”的完整攻略: 小红书怎么样才能有收益 小红书是一款社交电商平台,用户可以在平台上分享自己的购物心得和体验,并通过推广商品获得收益。下面是小红书怎么样才能有收益的攻略。 成为小红书达人 成为小红书达人是获得收益的前提条件之一。小红书达人是指在小红书上有一定影响力的用户,他们的分享和推荐可以影响其他用户的购买决策。成为小红书达人需…

    html 2023年5月18日
    00
  • c#批量整理xml格式示例

    C#批量整理Xml格式示例攻略 在进行Xml数据处理时,经常需要将Xml文档格式化整理以便于阅读。这里提供C#代码示例,将目录中所有的Xml文件都进行格式化整理。 流程 获取目录下的所有Xml文件。 循环遍历每个Xml文件,读取内容并进行格式化处理。 将处理后的内容写回到原文件中。 代码示例 using System; using System.IO; us…

    html 2023年5月30日
    00
  • vue项目中icon乱码的问题及解决

    这是一篇困扰Vue项目开发者的问题:在使用Vue框架时,有时候会出现icon图标乱码的问题,这给开发带来很大困扰。本篇攻略将会详细讲解这种问题的原因以及解决方法,同时还会提供两个示例来协助理解。 问题原因 造成Vue项目中icon图标乱码的原因一般有两个: 计算机中没有安装相关的字体文件。 Vue cli将svg图标转成symbol后,symbol的id值和…

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