mybatis 增删改查

MyBatis 是一种持久化框架,主要用于简化数据库访问代码的编写。它允许开发者使用 XML 或注解来配置 SQL 映射,并提供了自动将数据库操作映射到 Java 对象的功能。以下是 MyBatis 中的基本增删改查操作的示例:

 1. 增加(Insert):

使用 MyBatis 进行插入操作时,通常需要编写一个对应的 SQL 映射。

XML 映射文件:

xml

 
    INSERT INTO users (id, username, email) VALUES (#{id}, #{username}, #{email})
 


Java 代码:

java
// User.java
package com.example;

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

  // getters and setters
}

// UserMapper.java
package com.example;

public interface UserMapper {
  void insertUser(User user);
}


 2. 删除(Delete):

XML 映射文件:

xml

 
    DELETE FROM users WHERE id = #{id}
 


Java 代码:

java
// UserMapper.java
package com.example;

public interface UserMapper {
  void deleteUserById(int userId);
}


 3. 更新(Update):

XML 映射文件:

xml

 
    UPDATE users SET username = #{username}, email = #{email} WHERE id = #{id}
 


Java 代码:

java
// UserMapper.java
package com.example;

public interface UserMapper {
  void updateUser(User user);
}


 4. 查询(Select):

XML 映射文件:

xml

 


Java 代码:

java
// UserMapper.java
package com.example;

public interface UserMapper {
  User getUserById(int userId);
}


以上示例中,User 类表示数据库表的结构,UserMapper 接口定义了数据库操作的方法,而 XML 映射文件则包含了相应的 SQL 语句。在实际应用中,你需要在 MyBatis 的配置文件中指定这些映射文件,并使用 SqlSessionFactory 和 SqlSession 来执行数据库操作。

在使用 MyBatis 进行数据库操作时,通常会有一个 Service 层来处理业务逻辑,而 Controller 层负责处理用户请求和响应。以下是一个简单的 Spring MVC 的示例,演示了如何在 Controller 中调用 MyBatis Service。

假设你有一个名为 `UserService` 的服务类,该类包含了前面提到的 MyBatis 操作方法,然后你可以在 Controller 中注入并调用该服务类。

 1. Service 类:

java
// UserService.java
package com.example;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

  @Autowired
  private UserMapper userMapper;

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

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

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

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


 2. Controller 类:

java
// UserController.java
package com.example;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller
@RequestMapping("/users")
public class UserController {

  @Autowired
  private UserService userService;

  @PostMapping("/add")
  @ResponseBody
  public String addUser(@RequestBody User user) {
    userService.addUser(user);
    return "User added successfully!";
  }

  @GetMapping("/delete/{id}")
  @ResponseBody
  public String deleteUser(@PathVariable("id") int userId) {
    userService.deleteUserById(userId);
    return "User deleted successfully!";
  }

  @PostMapping("/update")
  @ResponseBody
  public String updateUser(@RequestBody User user) {
    userService.updateUser(user);
    return "User updated successfully!";
  }

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


在上述示例中,`UserController` 使用 `@Autowired` 注解来注入 `UserService`,然后在各个请求处理方法中调用 `UserService` 中的方法来执行相应的数据库操作。 `@PostMapping` 和 `@GetMapping` 注解用于映射 HTTP POST 和 GET 请求,`@ResponseBody` 注解表示返回的内容直接作为响应体。

请确保在你的 Spring 配置中启用了注解扫描,以便正确扫描和实例化这些类。这个示例假设你已经正确配置了 Spring MVC 和 MyBatis,并且在 Spring 的配置文件中配置了相应的事务管理。

你可能感兴趣的:(mybatis,java)