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日

相关文章

  • HTML head(头部)标签详解

    HTML的<head>标签是HTML文档的头部,它通常用来引入外部资源和指定文档的一些元数据。下面我们来详细讲解<head>标签的相关属性和用法。 <head>标签的语法格式如下: <!DOCTYPE html> <html> <head> <!– head元素内容 –>…

    Web开发基础 2023年3月16日
    00
  • php simplexmlElement操作xml的命名空间实现代码

    PHP中的SimpleXMLElement可以操作XML文件,实现简单的XML解析。而XML中存在命名空间,因此在使用SimpleXMLElement时,我们需要注意如何处理命名空间。 1. 了解命名空间 命名空间就是一个用来标识符号唯一性的字符串。不使用命名空间的情况下,如果两个XML文件中的元素名相同,那么它们在解析时就无法区分。使用命名空间可以解决这个…

    html 2023年5月30日
    00
  • 解决VuePress页面乱码问题

    下面是解决VuePress页面乱码问题的完整攻略: 问题背景 在使用VuePress时,可能会遇到中文显示乱码的问题。这是由于VuePress默认的编码为UTF-8,而网页在浏览器中的编码可能为其他编码格式,导致中文字符无法正常显示的情况。 解决方案 方案一:设置VuePress的编码格式 可以在VuePress的配置文件中指定网站的编码格式为UTF-8,代…

    html 2023年5月31日
    00
  • html标签之Object和EMBED标签详解

    让我来详细讲解一下“HTML标签之Object和EMBED标签详解”。 什么是Object标签? <object> 标签定义了嵌入对象,比如图像、声音、视频、Java applets、ActiveX、PDF,以及 Flash 等等。<object> 标签最常用于在 HTML 页面中插入基于插件的媒体以及其他应用程序。 Object标签…

    html 2023年5月30日
    00
  • Java dom4j生成与解析XML案例详解

    Java dom4j生成与解析XML案例详解 什么是dom4j? dom4j是一个开放源代码的Java XML解析器,它基于Java标准的DOM和XPath接口,并扩展了DOM和XPath库以实现更好的性能和易用性。dom4j能够读取XML文档、遍历XML元素树、编辑XML文档并生成新的XML文档。 dom4j生成XML dom4j生成XML是指使用dom4…

    html 2023年5月30日
    00
  • JavaScript的React框架中的JSX语法学习入门教程

    首先,要了解JSX是什么。JSX是JavaScript的一种语法扩展,可以在JavaScript中编写类似HTML的代码。它是React用来描述UI的语法。 学习JSX,需要掌握以下知识点: 语法格式 JSX的语法格式与HTML类似,但它并不是HTML。最外层需要一个容器元素(可以是div等),标签必须闭合,属性名采用驼峰式命名,属性值既可以是字符串也可以是…

    html 2023年5月30日
    00
  • iis伪静态中文url出现乱码的解决办法

    以下是关于”iis伪静态中文url出现乱码的解决办法”的详细攻略: 背景 IIS是Microsoft开发的Web服务器程序,为Windows操作系统提供Web服务。伪静态是当接收到请求后,通过URL Rewrite将参数重写成带有扩展名的静态URL,并且让用户认为它是静态的。而中文URL出现乱码的问题,则是因为IIS默认以Unicode编码的方式处理URL。…

    html 2023年5月31日
    00
  • 怎么申请社保关系转移? 支付宝社保异地转移的技巧

    以下是关于申请社保关系转移和支付宝社保异地转移的攻略: 怎么申请社保关系转移? 社保关系转移是指在不同城市工作的人员将其社保关系从原工作地转移至新工作地的一项服务。以下是详细的攻略: 登录社保网站:首先,登录社保网站,进入“社保关系转移”页面。 填写申请表:在“社保关系转移”页面中,填写申请表。您需要提供个人信息、原工作地社保信息、新工作地社保信息等。 提交…

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