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
Lepaskan: 2023-06-22 14:37:57
asal
1458 orang telah melayarinya

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>
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk
<🎜. > 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方法
}
Salin selepas log masuk

    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();
}
Salin selepas log masuk

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>
Salin selepas log masuk

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();
    }
}
Salin selepas log masuk

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();
    }
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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

{
    "id": 1,
    "name": "李四",
    "age": 20
}
Salin selepas log masuk

Gunakan permintaan DELETE untuk padamkan Maklumat pengguna, URLnya ialah:

http://localhost:8080/user/1
Salin selepas log masuk
Salin selepas log masuk

Gunakan permintaan GET untuk mendapatkan maklumat pengguna, URLnya ialah:

http://localhost:8080/user/1
Salin selepas log masuk
Salin selepas log masuk

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

http://localhost:8080/user/
Salin selepas log masuk
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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan