Rumah > Java > javaTutorial > teks badan

Bagaimana untuk melaksanakan penambahan asas, pemadaman, pengubahsuaian dan pertanyaan dalam SpringBoot di Jawa

WBOY
Lepaskan: 2023-05-20 10:07:41
ke hadapan
1430 orang telah melayarinya

Bagaimana untuk melaksanakan penambahan asas, pemadaman, pengubahsuaian dan pertanyaan dalam SpringBoot di Jawa

Seperti yang ditunjukkan dalam gambar di atas, kami mempunyai 7 modul penting dalam idea yang perlu dibina

(1) pakej pengawal: Jika anda mengetahui Rakan yang pernah mengalami atau mengetahui sesuatu tentang SpringMVC mesti tahu bahawa pengawal adalah lapisan kawalan, yang setara dengan tempat kami menerima maklumat penyemak imbas dan bertindak balas untuk menghantar maklumat yang berkaitan Secara khusus, ia juga menggabungkan pengetahuan berkaitan rangkaian komputer memahami cara menggunakannya dalam penyemak imbas, dan bagaimana untuk bertindak balas kepada maklumat Kami melaksanakan manipulasi data yang berkaitan di bawah lapisan kawalan pengawal (di sini, saya ingin mengucapkan terima kasih kepada abang senior saya semasa kerjaya siswazah saya. mengajar saya tentang pengaturcaraan Web untuk masa yang lama, yang telah banyak memberi manfaat kepada saya, saya harap semua orang boleh menggunakan masa yang berkaitan, menyemak lebih banyak maklumat dan video yang berkaitan untuk belajar (2) pakej entiti disimpan di sini, yang betul-betul sama seperti hanya belajar membuat kelas dalam java, tiada perbezaan
(3) pakej pemeta: SpringMVC Ia dipanggil lapisan kegigihan (lapisan DAO (objek akses data)), di mana anda boleh mengendalikan pangkalan data secara langsung, dan biasanya digunakan bersama pakej pemetaan pakej kelima
(4) pakej perkhidmatan: dipanggil dalam lapisan logik Perniagaan SpringMVC, jadi kelas yang disimpan di sini semuanya berkaitan dengan pemprosesan logik perniagaan
(5) pakej pemetaan: diletakkan di bawah sumber sebagai classpath, fail mybatis disimpan, kerana SpringBoot semasa sangat bersepadu, banyak konfigurasi Fail boleh disatukan, malah rakan yang tidak mempunyai asas mybatis boleh mempelajarinya. Sebab mengapa pakej pemeta dan pakej pemetaan digunakan bersama adalah kerana ia membentuk hubungan pemetaan, dan ia digunakan dalam gabungan untuk mengakses fail pangkalan data kami
(6) application.yml: Sebagai fail konfigurasi lalai global, ia terpakai kepada keseluruhan Projek, untuk menyepadukan begitu banyak maklumat konfigurasi kami, fail konfigurasi ini sememangnya amat diperlukan (sebaik-baiknya menggunakan bahasa yaml untuk menulis fail konfigurasi di sini, kerana penulisannya agak mudah dan jelas); > (7) application-dev.yml : Ini dianggap sebagai fail konfigurasi untuk persekitaran tertentu, dan ia harus digabungkan dengan projek sebenar kami. Kerana projek itu sendiri bukan sahaja persekitaran pembangunan, tetapi juga satu siri persekitaran seperti ujian dan pengeluaran. Apabila kami melakukan pembangunan, kami menggunakan persekitaran pembangunan untuk mengkonfigurasi aplikasi-dev.yml Apabila kami melakukan ujian, kami menggunakan persekitaran ujian untuk mengkonfigurasi aplikasi-test.yml Apabila kami melakukan pengeluaran, kami menggunakan persekitaran pengeluaran untuk mengkonfigurasi aplikasi-. yml. Pada masa ini, kami hanya bercakap tentang persekitaran pembangunan, jadi kami hanya menggunakan satu fail konfigurasi application-dev.yml. Maklumat konfigurasi persekitaran khusus akan mengatasi konfigurasi lalai application.yml apabila digunakan, jadi tidak perlu risau tentang konflik antara pernyataan dalam konfigurasi lalai dan pernyataan dalam konfigurasi persekitaran.

(1) Kemasukan program

Setiap program java mempunyai entri program sendiri sudah wujud apabila kami memulakan SpringBoot Kami tidak perlu melakukan konfigurasi yang terlalu banyak di sini.

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.example.demo.mapper")
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
Salin selepas log masuk
Bagaimana untuk melaksanakan penambahan asas, pemadaman, pengubahsuaian dan pertanyaan dalam SpringBoot di Jawa●@SpringBootApplication anotasi: Ia digunakan untuk menunjukkan bahawa ini ialah kelas item permulaan projek springboot, dengan tujuan mendayakan konfigurasi automatik (sebenarnya, ia diwarisi daripada kelas konfigurasi Konfigurasi. Pemahaman mendalam memerlukan semua orang menganalisis prinsip SpringBoot)

●@MapperScan ("com.example.demo.mapper") adalah untuk mengimbas fail pemeta kami dan mengakses fail pangkalan data yang berkaitan dengan berkesan Pemetaan URL (anotasi ini sangat berguna! )


(2) Cipta fail pangkalan data

Bagaimana untuk melaksanakan penambahan asas, pemadaman, pengubahsuaian dan pertanyaan dalam SpringBoot di Jawa

Bagaimana untuk melaksanakan penambahan asas, pemadaman, pengubahsuaian dan pertanyaan dalam SpringBoot di Jawa●Sql yang sepadan create table statement adalah seperti berikut:

CREATE TABLE `water` (
  `id` int NOT NULL,
  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `salary` double(10,2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_unicode_ci;
Salin selepas log masuk

(3) Cipta kelas entiti Pengguna

package com.example.demo.entity;

/**
 * @description:    实体类
 * @author: Fish_Vast
 * @Date: 2021/8/25
 * @version: 1.0
 */
public class User {
    private String name;
    private Integer id;
    private Double salary;

    public User() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", id=" + id +
                ", salary=" + salary +
                '}';
    }
}
Salin selepas log masuk
Bagaimana untuk melaksanakan penambahan asas, pemadaman, pengubahsuaian dan pertanyaan dalam SpringBoot di Jawa●Saya percaya semua orang akan mengetahui perkara ini kelas yang boleh ditulis berdasarkan Java tulen Wujudkan Tiga sifat peribadi, pembina parameter null, kaedah get dan set yang sepadan, dan kaedah toString() yang diganti. Perkara yang perlu diperhatikan di sini ialah apabila mengisytiharkan sifat, sebaiknya gunakan kelas pembalut untuk pengisytiharan.

●Dalam bacaan dan input yang berkaitan dengan mybatis di Jawa, mengapa cuba menggunakan kelas pembungkusan dan bukannya jenis data asas?

① Jika tiada nilai diberikan kepada medan dalam MySQL, nilai lalainya adalah batal Apabila anda menyemaknya daripada pangkalan data, ia juga adalah nol Jika medan jenis int dalam kod Java yang sepadan, null tidak boleh sepadan kepada jenis int, kerana int mewakili asas Jenis data hanya boleh menjadi nombor asas.
②Atribut kelas entiti boleh diberikan nilai atau tidak Apabila anda tidak memberikan nilai padanya, ia mempunyai nilai lalai sebagai contoh, nilai lalai int ialah 0. Tetapi secara aktif menetapkan nilai kepada 0 dan ia lalai kepada 0 adalah dua konsep yang berbeza. Sebagai contoh, skor kelas: 0 bermakna pelajar tertentu mempunyai skor 0, dan nol bermakna pelajar itu tidak mempunyai markah dalam peperiksaan Ini adalah dua konsep yang berbeza.

(4)建立UserMapper接口

Bagaimana untuk melaksanakan penambahan asas, pemadaman, pengubahsuaian dan pertanyaan dalam SpringBoot di Jawa

package com.example.demo.mapper;

import com.example.demo.entity.User;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserMapper {
    //1.通过id查询用户信息
    User getUser(int id);
    //2.通过id删除用户信息
    int delete(int id);
    //3.更改用户信息
    int update(User user);
    //4.插入用户信息
    int save(User user);
    //5.查询所有用户信息
    List<User> selectAll();
}
Salin selepas log masuk

●@Repository,注解它本身的作用便是标注数据访问组件,作为DAO对象,它将 DAO 导入 IoC 容器,并使未经检查的异常有资格转换为 Spring DataAccessException。通过这个注解能够报出更多发现不了的错误,更有利于对项目的维护和开发。其实@Repository不在接口上进行注明,我们的程序照样可以运行,因为在我们使用@MapperScan的时候,我们已经将我们的接口交给框架中的代理类,所以即便是我们不写,程序不会报错,只是我们在Service层写明接口的时候,IDEA会给出红色的波浪线。可以这样理解,标注@Repository是为了告诉编译器我将接口注入到了IoC容器了,你不要报错啦~
●相应地,写出增删查改和查询全部信息的五个方法。

(5)配置UserMapper.xml文件

<?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">
    <resultMap id="BaseResultMap" type="com.example.demo.entity.User">
        <result column="id" jdbcType="INTEGER" property="id" />
        <result column="name" jdbcType="VARCHAR" property="name" />
        <result column="salary" jdbcType="DOUBLE" property="salary" />
    </resultMap>
    <!--查询用户信息-->
    <select id="getUser" resultType="com.example.demo.entity.User">
        select * from water where id = #{id}
    </select>
    <!--删除用户信息-->
    <delete id="delete" parameterType="int">
        delete from water where id=#{id}
    </delete>
    <!--返回所有用户信息-->
    <select id="selectAll"  resultType="com.example.demo.entity.User">
        select * from water
    </select>

    <!--增加用户信息-->
    <insert id="save" parameterType="com.example.demo.entity.User" >
        insert into water
        <trim prefix="(" suffix=")" suffixOverrides="," >
            <if test="id != null" >
                id,
            </if>
            <if test="name != null" >
                name,
            </if>
            <if test="salary != null" >
                salary,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides="," >
            <if test="id != null" >
                #{id,jdbcType=INTEGER},
            </if>
            <if test="name != null" >
                #{name,jdbcType=VARCHAR},
            </if>
            <if test="salary != null" >
                #{salary,jdbcType=DOUBLE},
            </if>
        </trim>
    </insert>

    <!--根据id更改用户信息-->
    <update id="update" parameterType="com.example.demo.entity.User">
        update water
        <set >
            <if test="name != null" >
                name = #{name,jdbcType=VARCHAR},
            </if>
            <if test="salary != null" >
                salary = #{salary,jdbcType=DOUBLE},
            </if>
        </set>
        where id = #{id,jdbcType=INTEGER}
    </update>
</mapper>
Salin selepas log masuk

●mapper namespace用于绑定mapper接口的,当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句(通过mapper方法名进行绑定);
●resultMap 定义了一个id为BaseResultMap的标识,type代表使用哪种类作为我们所要映射的类;