Java Fluent Mybatis 项目工程化与常规操作详解流程篇 下

yizhihongxing

Java Fluent Mybatis 项目工程化与常规操作详解流程篇

Java Fluent Mybatis 是一个基于 Mybatis 的 fluent 动态 SQL 构建器,可以帮助我们快速生成复杂的 SQL 语句。下面我们将详细讲解 Java Fluent Mybatis 项目工程化与常规操作的流程。

一、创建项目

首先,我们需要创建一个 Maven 项目,并添加 Java Fluent Mybatis 的依赖。在 pom.xml 文件中添加以下代码:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.5</version>
</dependency>

<dependency>
    <groupId>org.mybatis.fluent</groupId>
    <artifactId>mybatis-fluent</artifactId>
    <version>1.4.2</version>
</dependency>

二、配置 Mybatis

接着,我们需要配置 Mybatis,创建 mybatis-config.xml 文件,并添加以下内容:

<configuration>    
    <typeAliases>
        <!-- 注册别名 -->
        <typeAlias alias="User" type="com.example.model.User"/>
    </typeAliases>

    <!-- 配置数据源 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driverClass}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>    
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 配置 Mapper 映射文件 -->
    <mappers>
        <mapper resource="com/example/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

在示例代码中,我们注册了一个 User 类别名,配置了一个数据源和一个 Mapper 文件。

三、编写 Mapper 接口

在上一步中,我们已经配置了一个 Mapper 映射文件,接下来我们需要编写一个对应的 Mapper 接口。

public interface UserMapper {
    @Select("SELECT * FROM user")
    List<User> getAllUsers();

    @Select("SELECT * FROM user WHERE id = #{id}")
    User getUserById(int id);

    @Insert("INSERT INTO user (id, name, age) VALUES (#{id}, #{name}, #{age})")
    int insertUser(User user);

    @Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}")
    int updateUser(User user);

    @Delete("DELETE FROM user WHERE id = #{id}")
    int deleteUserById(int id);
}

在示例代码中,我们使用注解的方式来定义 SQL 语句,并将它们映射到对应的方法上。其中 @Select 注解表示查询语句,@Insert 注解表示插入语句,@Update 注解表示更新语句,@Delete 注解表示删除语句。

四、编写 Service 层

接下来,我们需要编写一个 Service 层来调用 Mapper 接口中的方法,处理业务逻辑。

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public List<User> getAllUsers() {
        return userMapper.getAllUsers();
    }

    public void insertUser(User user) {
        userMapper.insertUser(user);
    }

    public void updateUser(User user) {
        userMapper.updateUser(user);
    }

    public void deleteUserById(int id) {
        userMapper.deleteUserById(id);
    }
}

在示例代码中,我们注入了一个 UserMapper 对象,并在 Service 层中调用了 Mapper 接口中的方法,处理业务逻辑。

五、编写 Controller 层

最后,我们需要编写一个 Controller 层来处理请求和返回响应。

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("")
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @PostMapping("")
    public void insertUser(@RequestBody User user) {
        userService.insertUser(user);
    }

    @PutMapping""
    public void updateUser(@RequestBody User user) {
        userService.updateUser(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUserById(@PathVariable int id) {
        userService.deleteUserById(id);
    }
}

在示例代码中,我们定义了四个请求处理方法,分别对应查询、插入、更新和删除操作。其中 @GetMapping 注解表示获取资源,@PostMapping 注解表示创建资源,@PutMapping 注解表示更新资源,@DeleteMapping 注解表示删除资源。

六、示例

下面,我们将以用户管理为例,演示 Java Fluent Mybatis 的使用流程。

1. 创建用户表

首先,我们需要创建一个用户表:

CREATE TABLE user (
    id INT PRIMARY KEY,
    name VARCHAR(32) NOT NULL,
    age INT NOT NULL
);

2. 创建实体类

接着,我们需要创建一个 User 实体类,并添加相应的属性和方法。

public class User {
    private int id;
    private String name;
    private int age;

    // 省略 getter 和 setter 方法
}

3. 编写 Mapper 映射文件

在这一步中,我们需要创建一个名为 UserMapper.xml 的 Mapper 映射文件,并编写相应的 SQL 语句。

<mapper namespace="com.example.mapper.UserMapper">
    <select id="getAllUsers" resultMap="userMap">
        SELECT * FROM user
    </select>

    <select id="getUserById" parameterType="int" resultMap="userMap">
        SELECT * FROM user WHERE id = #{id}
    </select>

    <insert id="insertUser" parameterType="User">
        INSERT INTO user (id, name, age)
        VALUES (#{id}, #{name}, #{age})
    </insert>

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

    <delete id="deleteUserById" parameterType="int">
        DELETE FROM user WHERE id = #{id}
    </delete>

    <resultMap id="userMap" type="User">
        <id property="id" column="id" />
        <result property="name" column="name" />
        <result property="age" column="age" />
    </resultMap>
</mapper>

在示例代码中,我们使用了 XML 的方式来定义 SQL 语句,并将它们映射到对应的方法上。

4. 编写 Mapper 接口

接着,我们需要创建一个 UserMapper 接口,并继承 BaseMapper 接口,加入以下方法:

public interface UserMapper extends BaseMapper<User> {

}

在示例代码中,我们继承了 BaseMapper 接口,并将泛型指定为 User 类型。

5. 编写 Service 层

在这一步中,我们需要创建一个 UserService 类,并实现相应的方法,调用 Mapper 接口中的方法。

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public List<User> getAllUsers() {
        return userMapper.selectAll();
    }

    public User getUserById(int id) {
        return userMapper.selectByPrimaryKey(id);
    }

    public void insertUser(User user) {
        userMapper.insert(user);
    }

    public void updateUser(User user) {
        userMapper.updateByPrimaryKey(user);
    }

    public void deleteUserById(int id) {
        userMapper.deleteByPrimaryKey(id);
    }
}

在示例代码中,我们注入了一个 UserMapper 对象,并实现了查询、插入、更新和删除操作的方法。

6. 编写 Controller 层

最后,我们需要创建一个 UserController 类,并实现相应的方法,处理请求和返回响应。

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("")
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @GetMapping("/{id}")
    public User getUserById(@PathVariable int id) {
        return userService.getUserById(id);
    }

    @PostMapping("")
    public void insertUser(@RequestBody User user) {
        userService.insertUser(user);
    }

    @PutMapping("/{id}")
    public void updateUser(@PathVariable int id, @RequestBody User user) {
        user.setId(id);
        userService.updateUser(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUserById(@PathVariable int id) {
        userService.deleteUserById(id);
    }
}

在示例代码中,我们定义了五个请求处理方法,分别对应查询所有用户、查询单个用户、插入用户、更新用户和删除用户的操作。其中 @GetMapping 和 @PostMapping 注解表示 GET 和 POST 请求,@PutMapping 注解表示 PUT 请求,@DeleteMapping 注解表示 DELETE 请求。

至此,Java Fluent Mybatis 项目工程化与常规操作的全部流程已经讲解完毕。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Fluent Mybatis 项目工程化与常规操作详解流程篇 下 - Python技术站

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

相关文章

  • Linux下Tomcat8如何修改JVM内存配置

    下面是详细的攻略: 准备工作 在修改Tomcat JVM内存配置之前,需要先确认是否已经安装了JDK。如果尚未安装,请先安装。安装JDK的详细步骤可以参考JDK安装指南。 修改JVM内存配置 打开Tomcat安装目录下的bin文件夹,并找到catalina.sh文件。 打开catalina.sh文件,在文件末尾添加以下代码: JAVA_OPTS=”-Xms5…

    Java 2023年5月20日
    00
  • RocketMQ是是如何管理消费进度的?又是如何保证消息成功消费的?

    RocketMQ消费者保障 消息确认机制 consumer的每个实例是靠队列分配来决定如何消费消息的。那么消费进度具体是如何管理的,又是如何保证消息成功消费的?(RocketMQ有保证消息肯定消费成功的特性,失败则重试) 什么是ACK 消息确认机制 在实际使用RocketMQ的时候我们并不能保证每次发送的消息都刚好能被消费者一次性正常消费成功,可能会存在需要…

    Java 2023年4月18日
    00
  • 在Java编程中使用正则表达式

    在Java编程中使用正则表达式是非常常见的任务。下面我将为你详细讲解如何在Java编程中使用正则表达式。 步骤1:导入正则表达式的库 Java内置了支持正则表达式的库,需要在Java源代码中导入库,使用import语句导入java.util.regex.*包。 import java.util.regex.*; 步骤2:创建正则表达式对象 在Java编程中,…

    Java 2023年5月27日
    00
  • 基于java开发之系统托盘的应用

    关于“基于Java开发之系统托盘的应用”的开发攻略,我将按照以下步骤进行讲解。 步骤一:创建系统托盘 导入相关包及类 Java提供了一些相关的包和类,至少要导入以下这些: import java.awt.*; import java.awt.event.*; import javax.swing.*; 创建系统托盘 接着,在 Java 中创建系统托盘可以采用…

    Java 2023年5月24日
    00
  • Java13 明天发布(最新最全新特性解读)

    Java13 发布攻略 Java13 于 2019年9月17日发布,在这篇文档中,我们将介绍 Java13 的最新特性。 1. 新特性 以下是 Java13 中的一些新特性: 1.1 Switch 表达式 Java 13 可以使用新的关键字 yield 或 -> 来作为 switch 表达式的返回值。这使得代码更加简洁。 下面是一个例子: public…

    Java 2023年5月19日
    00
  • Java零基础教程之Windows下安装、启动Tomcat服务器方法图解(免安装版)

    Java零基础教程之Windows下安装、启动Tomcat服务器方法图解(免安装版) 简介 本文主要介绍在Windows系统下,如何安装、启动Tomcat服务器,并提供免安装版步骤图解。 准备 在开始安装Tomcat服务器之前,需要满足以下条件: 安装Java开发工具包(JDK) 下载Tomcat服务器 安装JDK 在官网Java SE下载页面下载适用于Wi…

    Java 2023年5月20日
    00
  • Java使用POI实现导出Excel的方法详解

    首先我们来讲解一下Java使用POI实现导出Excel的方法详解。 一、POI介绍 Apache POI是Apache软件基金会的开源项目,是用于Java编程语言处理Microsoft Office格式文件的开源库。POI提供API给用户对Excel、Word和PowerPoint等文件进行读和写的功能。POI提供了对Excel 97-2003及Excel …

    Java 2023年5月26日
    00
  • Spring populateBean属性赋值和自动注入

    Spring框架是一款高效的Java开发框架,其优秀的依赖注入机制使得程序员们可以更加快速和高效的进行开发。其中,populateBean属性赋值和自动注入是Spring框架中最为常见的两种方式,下面将对这两种方式进行详细的讲解。 1. populateBean属性赋值 populateBean属性赋值是Spring框架中最为常用的一种方式,其作用是将数据传…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部