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实现的读取/更改/写入xml文件操作示例

    下面我来详细讲解“Python实现的读取/更改/写入xml文件操作示例”的完整攻略。 1. 什么是XML XML(Extensible Markup Language)是一种用于存储和传输数据的标记语言,它可以表示任何类型的数据,例如文本、图像、音频等等。XML 是一种类似于 HTML 的标记语言,但与 HTML 不同,它没有预定义的标签,而是可以根据需要定…

    html 2023年5月30日
    00
  • log4j使用详细解析

    Log4j使用详细解析 Log4j是Java中常用的日志框架,可以用于控制日志输出的格式、级别、输出目的地等。本文将详细讲解Log4j的使用方法。 1. 引入Log4j依赖 在maven项目中,我们可以在pom.xml中添加以下依赖来引入Log4j: <dependency> <groupId>org.apache.logging.l…

    html 2023年5月30日
    00
  • Html标签简明教程

    下面是“Html标签简明教程”的完整攻略。 HTML标签简明教程 什么是HTML标签? HTML(英语:HyperText Markup Language,超文本标记语言)是网页制作所使用的一种标记语言。HTML使用标签来描述网页上的内容和结构,标签通常是成对出现的,也有少量是单个出现的。 HTML标签的基本格式为: <标签名>标签内容</…

    html 2023年5月30日
    00
  • 关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)

    下面我将详细讲解关于MySQL中文乱码问题的解决攻略。 问题分析 MySQL中文乱码问题通常是由以下几个方面引起的: 数据库和表格的字符集设置不正确 应用程序的字符集和MySQL Server的字符集不一致 连接MySQL Server的客户端字符集设置不正确,如命令行客户端或者图形化客户端 客户端操作系统字符集设置不正确 解决方法 方法一:修改MySQL的…

    html 2023年5月31日
    00
  • mybatis where 标签使用

    下面我将详细讲解“Mybatis where标签使用”的完整攻略,以及附带两条示例说明。 1. where 标签介绍 where 标签是 Mybatis 中用于动态生成 WHERE 子句的标签。它的作用可以在 SQL 语句中加入 WHERE 子句,将这个子句和其他的条件组合在一起。 2. where 标签用法 where 标签通常和其他的标签一起使用,比如:…

    html 2023年5月30日
    00
  • 详解XHTML中的标题标签与段落标签的使用

    下面是详解XHTML中的标题标签和段落标签的使用的完整攻略。 标题标签的使用 在XHTML中,我们可以使用<h1>到<h6>标签来表示6级标题。这些标签的语义意义逐级降低,<h1>是最高级别的标题,<h6>是最低级别的标题。 以下是标题标签的示例使用: <h1>这是一级标题</h1> &…

    html 2023年5月30日
    00
  • C#读取xml节点数据方法小结

    我来详细讲解一下《C#读取xml节点数据方法小结》的完整攻略。 标题 1. 什么是XML? XML(Extensible Markup Language),中文翻译为可扩展标记语言,它是一种标准的文本格式,常被用来表示数据传输。 2. XML文档结构 XML文档由多个节点组成,有根节点、元素节点、属性节点等。下面是一个示例的XML文档结构: <?xml…

    html 2023年5月30日
    00
  • iPhone11字体大小怎么调?苹果手机调节字体大小的三种方法

    iPhone11是苹果公司推出的一款智能手机,用户可以通过多种方式调节字体大小,以适应不同的使用场景和需求。下面是iPhone11调节字体大小的三种方法: 方法1:使用系统设置 打开iPhone11的“设置”应用程序。 点击“显示与亮度”选项。 在“文本大小”选项下,使用滑块调节字体大小。 您可以通过预览文本框中的文本,调整字体大小,直到满意为止。 以下是一…

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