MyBatis注解CRUD与执行流程是什么

发布时间:2023-02-24 10:13:57 作者:iii
来源:亿速云 阅读:91

MyBatis注解CRUD与执行流程是什么

目录

  1. 引言
  2. MyBatis简介
  3. MyBatis注解CRUD
  4. MyBatis执行流程
  5. 总结

引言

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

本文将详细介绍 MyBatis 的注解 CRUD 操作及其执行流程。

MyBatis简介

MyBatis 是一个半自动化的 ORM(Object-Relational Mapping)框架,它允许开发者通过 XML 或注解的方式将 SQL 语句与 Java 对象进行映射。MyBatis 的主要特点包括:

MyBatis注解CRUD

配置MyBatis

在使用 MyBatis 之前,首先需要进行一些基本的配置。通常,MyBatis 的配置包括以下几个步骤:

  1. 引入依赖:在 Maven 项目中,可以通过以下方式引入 MyBatis 依赖:
   <dependency>
       <groupId>org.mybatis</groupId>
       <artifactId>mybatis</artifactId>
       <version>3.5.7</version>
   </dependency>
  1. 配置数据源:在 mybatis-config.xml 文件中配置数据源和事务管理器。
   <configuration>
       <environments default="development">
           <environment id="development">
               <transactionManager type="JDBC"/>
               <dataSource type="POOLED">
                   <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                   <property name="url" value="jdbc:mysql://localhost:3306/mybatis_example"/>
                   <property name="username" value="root"/>
                   <property name="password" value="password"/>
               </dataSource>
           </environment>
       </environments>
   </configuration>
  1. 创建 SqlSessionFactory:通过 SqlSessionFactoryBuilder 创建 SqlSessionFactory
   String resource = "mybatis-config.xml";
   InputStream inputStream = Resources.getResourceAsStream(resource);
   SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

创建实体类

在 MyBatis 中,实体类通常与数据库表一一对应。例如,假设我们有一个 User 表,对应的实体类如下:

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

    // Getters and Setters
}

创建Mapper接口

MyBatis 的 Mapper 接口用于定义数据库操作的方法。通过注解,我们可以直接在接口中定义 SQL 语句。

public interface UserMapper {
    @Insert("INSERT INTO user(name, email) VALUES(#{name}, #{email})")
    void insertUser(User user);

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

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

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

注解CRUD操作

插入操作

插入操作通过 @Insert 注解实现。以下是一个插入用户的示例:

User user = new User();
user.setName("John Doe");
user.setEmail("john.doe@example.com");

UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.insertUser(user);

查询操作

查询操作通过 @Select 注解实现。以下是一个根据 ID 查询用户的示例:

UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(1);
System.out.println(user.getName());

更新操作

更新操作通过 @Update 注解实现。以下是一个更新用户信息的示例:

User user = new User();
user.setId(1);
user.setName("Jane Doe");
user.setEmail("jane.doe@example.com");

UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser(user);

删除操作

删除操作通过 @Delete 注解实现。以下是一个删除用户的示例:

UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUser(1);

MyBatis执行流程

MyBatis 的执行流程可以分为以下几个步骤:

配置文件加载

MyBatis 的配置文件通常包括 mybatis-config.xml 和 Mapper 文件。在启动时,MyBatis 会加载这些配置文件,并解析其中的配置项。

SQL会话工厂创建

通过 SqlSessionFactoryBuilder 创建 SqlSessionFactorySqlSessionFactory 是 MyBatis 的核心对象,它负责创建 SqlSession

String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

SQL会话创建

SqlSession 是 MyBatis 的核心接口,它提供了执行 SQL 语句的方法。通过 SqlSessionFactory 创建 SqlSession

SqlSession sqlSession = sqlSessionFactory.openSession();

SQL语句执行

通过 SqlSession 获取 Mapper 接口的实例,并调用其中的方法执行 SQL 语句。

UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(1);

结果映射

MyBatis 会将 SQL 查询结果映射到 Java 对象中。通过配置或注解,MyBatis 可以自动将结果集映射到实体类。

User user = mapper.getUserById(1);
System.out.println(user.getName());

总结

MyBatis 是一个功能强大且灵活的持久层框架,通过注解可以简化 CRUD 操作的开发。MyBatis 的执行流程包括配置文件加载、SQL 会话工厂创建、SQL 会话创建、SQL 语句执行和结果映射。通过理解这些流程,开发者可以更好地利用 MyBatis 进行数据库操作。

MyBatis 的注解方式使得代码更加简洁,减少了 XML 配置的复杂性,特别适合小型项目或快速开发场景。然而,对于复杂的 SQL 语句或需要动态 SQL 的场景,XML 配置仍然是一个不错的选择。

希望本文能够帮助读者更好地理解 MyBatis 的注解 CRUD 操作及其执行流程,并在实际开发中灵活运用。

推荐阅读:
  1. SpringBoot如何整合jdbc和mybatis
  2. MyBatis的特点以及作用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mybatis crud

上一篇:MySql中sql语句执行过程是什么

下一篇:F.conv2d pytorch卷积计算方式是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》