Rumah >Java >javaTutorial >Menggunakan MyBatis untuk melaksanakan akses data dan kegigihan dalam Spring Boot

Menggunakan MyBatis untuk melaksanakan akses data dan kegigihan dalam Spring Boot

WBOY
WBOYasal
2023-06-22 14:37:571452semak imbas

Spring Boot ialah rangka kerja pembangunan pesat yang boleh membantu pembangun membina aplikasi WEB dengan pantas. MyBatis ialah rangka kerja ORM yang sangat baik yang boleh memudahkan akses data dan ketekunan antara Java dan pangkalan data. Artikel ini akan memperkenalkan cara menggunakan MyBatis untuk melaksanakan akses data dan kegigihan dalam Spring Boot.

1. Spring Boot mengintegrasikan MyBatis

  1. Tambah kebergantungan

Tambah kebergantungan MyBatis dan MySQL dalam fail pom.xml:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.1</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.42</version>
</dependency>

Di sini kami menggunakan mybatis-spring-boot-starter untuk menyepadukan MyBatis.

  1. Konfigurasikan sumber data

Tambah sifat sambungan pangkalan data dalam application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver

Di sini kami menggunakan pangkalan data MySQL dan menyambung menggunakan akaun root, Kata laluan ialah 123456.

  1. Konfigurasikan MyBatis

Spring Boot akan mengimbas laluan pemeta secara automatik secara lalai Kami hanya perlu mengkonfigurasi laluan pemeta dalam application.properties:

mybatis.mapper-locations=classpath:mapper/*.xml
Konfigurasi ini menunjukkan bahawa fail mapper berada dalam folder mapper di bawah classpath projek.

Selepas melengkapkan konfigurasi di atas, Spring Boot telah melengkapkan penyepaduan MyBatis.

2. Tulis kelas entiti dan Mapper

    Tulis kelas entiti
Tentukan kelas Pengguna untuk mewakili jadual pengguna dalam pangkalan data:

public class User {
    private Long id;
    private String name;
    private Integer age;
    // 省略getter和setter方法
}

    Tulis Mapper
Tentukan antara muka UserMapper untuk mentakrifkan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan jadual Pengguna:

public interface UserMapper {
    void saveUser(User user);
    void updateUser(User user);
    void deleteUser(Long id);
    User findUserById(Long id);
    List<User> findAllUsers();
}

Di sini kita takrifkan penambahan , pemadaman, pengubahsuaian dan pertanyaan serta Kaedah untuk menanyakan semua pengguna.

3. Tulis Mapper.xml

Seterusnya, kami perlu menulis fail UserMapper.xml untuk melaksanakan operasi yang ditakrifkan dalam UserMapper:

<?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.demo.mapper.UserMapper">
    <insert id="saveUser" parameterType="com.example.demo.entity.User">
        insert into user(name, age) values (#{name}, #{age})
    </insert>

    <update id="updateUser" parameterType="com.example.demo.entity.User">
        update user set name = #{name}, age = #{age} where id = #{id}
    </update>

    <delete id="deleteUser" parameterType="java.lang.Long">
        delete from user where id = #{id}
    </delete>

    <select id="findUserById" parameterType="java.lang.Long"
            resultType="com.example.demo.entity.User">
        select * from user where id = #{id}
    </select>

    <select id="findAllUsers" resultType="com.example.demo.entity.User">
        select * from user
    </select>
</mapper>

Dalam fail ini, kami melaksanakan Semua kaedah yang ditakrifkan dalam UserMapper, di mana parameterType mewakili jenis parameter dan resultType mewakili jenis nilai pulangan.

4. Kelas Perkhidmatan dan pengawal Tulis

    Kelas Perkhidmatan Tulis
Tentukan kelas Perkhidmatan Pengguna untuk merangkum operasi pada jadual Pengguna:

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

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

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

    public void deleteUser(Long id) {
        userMapper.deleteUser(id);
    }

    public User findUserById(Long id) {
        return userMapper.findUserById(id);
    }

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

Dalam kelas ini, kami menggunakan anotasi @Autowired untuk menyuntik UserMapper, iaitu, anda boleh menggunakan kaedah yang ditakrifkan dalam UserMapper.

    Tulis pengawal
Tentukan kelas UserController untuk melaksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan untuk pengguna:

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

    @PostMapping("/")
    public String saveUser(@RequestBody User user) {
        userService.saveUser(user);
        return "success";
    }

    @PutMapping("/")
    public String updateUser(@RequestBody User user) {
        userService.updateUser(user);
        return "success";
    }

    @DeleteMapping("/{id}")
    public String deleteUser(@PathVariable Long id) {
        userService.deleteUser(id);
        return "success";
    }

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

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

Dalam kelas ini, kami gunakan @ Anotasi RestController menunjukkan bahawa kelas semasa ialah pengawal, dan laluan akses ditentukan menggunakan anotasi @RequestMapping. Pada masa yang sama, UserService disuntik menggunakan anotasi @Autowired, iaitu kaedah yang ditakrifkan dalam UserService boleh digunakan.

5. Pengujian

Kini, kami telah menyelesaikan pembinaan dan pengekodan keseluruhan projek. Seterusnya, kita boleh menggunakan alatan seperti Postman untuk menguji API yang ditakrifkan dalam pengawal.

Gunakan permintaan POST untuk menyimpan maklumat pengguna, badan permintaan ialah:

{
    "name": "张三",
    "age": 18
}

Gunakan permintaan PUT untuk mengemas kini maklumat pengguna, badan permintaan ialah:

{
    "id": 1,
    "name": "李四",
    "age": 20
}

Gunakan permintaan DELETE untuk padamkan Maklumat pengguna, URLnya ialah:

http://localhost:8080/user/1

Gunakan permintaan GET untuk mendapatkan maklumat pengguna, URLnya ialah:

http://localhost:8080/user/1

Gunakan permintaan GET untuk mendapatkan semua maklumat pengguna, URLnya ialah:

http://localhost:8080/user/

Six , Summary

Artikel ini memperkenalkan cara menggunakan MyBatis untuk melaksanakan akses data dan kegigihan dalam Spring Boot, dan menggunakan contoh mudah untuk menggambarkan keseluruhan proses. MyBatis boleh menjadikan operasi pangkalan data program Java lebih cekap dan ringkas Jika anda perlu melaksanakan operasi pangkalan data dalam Spring Boot, anda boleh mempertimbangkan untuk menggunakan MyBatis.

Atas ialah kandungan terperinci Menggunakan MyBatis untuk melaksanakan akses data dan kegigihan dalam Spring Boot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn