国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java(一):創(chuàng)建 Spring Boot 項目并實現(xiàn)連接操作MySQL數(shù)據(jù)庫

這篇具有很好參考價值的文章主要介紹了Java(一):創(chuàng)建 Spring Boot 項目并實現(xiàn)連接操作MySQL數(shù)據(jù)庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

準備

MySQL

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

命令

$ docker pull mysql
$ docker run --name local-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

Maven

相關(guān)地址

下載地址:

https://maven.apache.org/

maven配置方法地址:

https://developer.aliyun.com/mvn/guide

倉庫搜索地址:

https://mvnrepository.com/

https://repo.maven.apache.org/

maven本地配置conf/settings.xml

<!-- TAG··· -->

<!-- 指定下載依賴到本地的路徑 -->
<localRepository>${user.home}/Documents/AAA-PLee/maven/repository</localRepository>

        <!-- TAG··· -->

        <!-- 配置為阿里云公共倉庫 -->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共倉庫</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>

        <!-- TAG··· -->

下載idea并配置本地環(huán)境maven

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

Maven構(gòu)建生命周期

  • Maven的構(gòu)建生命周期包括三個階段clean、buildsite
    1. clean:清理項目,刪除之前的編譯結(jié)果和構(gòu)建產(chǎn)生的文件。
    2. build:構(gòu)建項目,包括編譯、測試、打包等操作。
    3. site:生成項目文檔和報告,例如測試報告、代碼覆蓋率報告等。
  • 每個階段都包含了一些插件和目標,Maven會按照預(yù)定義的順序依次執(zhí)行。例如,在build階段,Maven會依次執(zhí)行以下目標:
    1. validate:驗證項目是否正確。
    2. compile:編譯項目源代碼。
    3. test:運行項目的測試用例。
    4. package:將項目打包成jar或war文件。
    5. verify:驗證打包結(jié)果是否正確。
    6. install:將打包結(jié)果安裝到本地Maven倉庫。
    7. deploy:將打包結(jié)果部署到遠程Maven倉庫。

idea所需插件下載

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

EasyCode

用于快速生成與數(shù)據(jù)庫相關(guān)的項目目錄和代碼

MyBatisPlus

用于javasql.xml之間的跳轉(zhuǎn)

idea創(chuàng)建項目

配置 Server URL

地址:https://start.aliyun.com/

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

填寫項目相關(guān)信息

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

創(chuàng)建項目成功(運行并測試)

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

idea測試能否正常連接MySQL

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

創(chuàng)建數(shù)據(jù)庫表

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

添加項目內(nèi)連接MySQL的配置

搜索連接MySQL使用的依賴包

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

編寫連接數(shù)據(jù)庫配置文件

pom.xml中引入MySQL依賴包(別忘了Load Maven Changes


<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
</dependency>

創(chuàng)建并編寫application.yml

路徑:user/src/main/resources/application.yml

server:
  port: 8000
spring:
  application:
    name: user-service
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/java_app
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

利用插件EasyCode快速創(chuàng)建操作數(shù)據(jù)庫相關(guān)代碼

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

查看創(chuàng)建完成后的項目目錄結(jié)構(gòu)

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

Java應(yīng)用程序通常使用以下幾個組件來組織代碼

這些組件之間的關(guān)系通常是 Controller 調(diào)用 Service,Service 定義impl文件夾內(nèi)的業(yè)務(wù)實現(xiàn)類, 業(yè)務(wù)實現(xiàn)類調(diào)用 DAODAO 操作 Mapper中的SQL語句,Entity 表示數(shù)據(jù)庫表結(jié)構(gòu)實體類

簡單來說,Controller 用于接收用戶請求,Service 實現(xiàn)業(yè)務(wù)邏輯,DAO 操作數(shù)據(jù)庫,Entity 表示數(shù)據(jù)庫表結(jié)構(gòu)

/service/impl/xxx.java 中實現(xiàn)具體業(yè)務(wù)邏輯

/resources/mapper/xxx.xml 中添加操作數(shù)據(jù)的sql語句

  • Controller:控制器,用于接收用戶請求并調(diào)用相應(yīng)的處理方法來處理請求,然后返回響應(yīng)結(jié)果。通常使用 Spring MVC 框架來實現(xiàn)。
  • Service:服務(wù)層,用于實現(xiàn)業(yè)務(wù)邏輯,調(diào)用 DAO 進行數(shù)據(jù)操作。通常包含接口和實現(xiàn)類。
  • DAO:數(shù)據(jù)訪問對象,用于操作數(shù)據(jù)庫。通常使用 MyBatis、Hibernate 等框架來實現(xiàn)。
  • Entity:實體類,用于表示數(shù)據(jù)庫中的表結(jié)構(gòu)。通常包含類屬性和對應(yīng)的 getter/setter 方法。

解決項目中導(dǎo)入庫報錯問題

利用 https://mvnrepository.com/ 搜索解決

<!-- 解決完成后的pom.xml -->
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

嘗試運行(報錯:沒有引入對應(yīng)版本)

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

<!-- <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-commons</artifactId>
    <version>3.1.0</version>
</dependency> -->
<!-- 修改為 -->
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-commons</artifactId>
</dependency>

嘗試運行(缺少 @MapperScan 注解)

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

注意:盡量選擇使用量大的依賴包


<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>
// user/src/main/java/com/example/user/UserApplication.java

package com.example.user;

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

@SpringBootApplication
@MapperScan(basePackages = "com.example.user.dao")
public class UserApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class, args);
    }
}
  • @SpringBootApplication注解是一個組合注解,它的作用是標記一個Spring
    Boot應(yīng)用程序的主類。它包括三個注解:@Configuration,@EnableAutoConfiguration@ComponentScan
    • @Configuration:將該類標記為Spring應(yīng)用程序上下文中的一個bean定義的源。即在該類中定義的bean可以被Spring容器管理。
    • @EnableAutoConfiguration:自動配置Spring Boot應(yīng)用程序所需的Bean。
    • @ComponentScan:掃描應(yīng)用程序中的其他組件,例如控制器、服務(wù)和存儲庫。
  • @MapperScan是MyBatis框架中的一個注解,它的作用是掃描指定的包路徑,找到所有標記了@Mapper注解的接口,并將這些接口創(chuàng)建成MyBatis的Mapper接口實現(xiàn)類
    • 可以在需要使用Mapper的地方自動注入這些Mapper實現(xiàn)類的實例,從而方便地訪問數(shù)據(jù)庫。

嘗試運行(運行成功,若運行后立即結(jié)束,有可能為未引入spring-boot-starter-web包)

嘗試引入即可


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

最終pom.xml


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.2</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

訪問接口

請求失敗

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

解決報錯(告訴MyBatis去哪里找SQL語句)

mybatis:
  mapper-locations: classpath:**/mapper/*.xml

重新運行并請求

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql

完整源碼

目錄結(jié)構(gòu)

springboot連接mysql,Java,java,數(shù)據(jù)庫,spring boot,mysql文章來源地址http://www.zghlxwxcb.cn/news/detail-727703.html

引入依賴:user/pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>user</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>user</name>
    <description>user</description>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.example.user.UserApplication</mainClass>
                    <skip>true</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

服務(wù)相關(guān)配置:user/src/main/resources/application.yml

server:
  port: 8000

spring:
  application:
    name: user-service
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/java_app
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
  mapper-locations: classpath:**/mapper/*.xml

入口:user/src/main/java/com/example/user/UserApplication.java

package com.example.user;

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

@SpringBootApplication
@MapperScan(basePackages = "com.example.user.dao")
public class UserApplication {

    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class, args);
    }

}

(User)表控制層:user/src/main/java/com/example/user/controller/UserController.java

package com.example.user.controller;

import com.example.user.entity.User;
import com.example.user.service.UserService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * (User)表控制層
 *
 * @author makejava
 * @since 2023-06-12 14:13:44
 */
@RestController
@RequestMapping("user")
public class UserController {
    /**
     * 服務(wù)對象
     */
    @Resource
    private UserService userService;

    /**
     * 分頁查詢
     *
     * @param user 篩選條件
     * @param pageRequest      分頁對象
     * @return 查詢結(jié)果
     */
    @GetMapping
    public ResponseEntity<Page<User>> queryByPage(User user, PageRequest pageRequest) {
        return ResponseEntity.ok(this.userService.queryByPage(user, pageRequest));
    }

    /**
     * 通過主鍵查詢單條數(shù)據(jù)
     *
     * @param id 主鍵
     * @return 單條數(shù)據(jù)
     */
    @GetMapping("{id}")
    public ResponseEntity<User> queryById(@PathVariable("id") String id) {
        return ResponseEntity.ok(this.userService.queryById(id));
    }

    /**
     * 新增數(shù)據(jù)
     *
     * @param user 實體
     * @return 新增結(jié)果
     */
    @PostMapping
    public ResponseEntity<User> add(User user) {
        return ResponseEntity.ok(this.userService.insert(user));
    }

    /**
     * 編輯數(shù)據(jù)
     *
     * @param user 實體
     * @return 編輯結(jié)果
     */
    @PutMapping
    public ResponseEntity<User> edit(User user) {
        return ResponseEntity.ok(this.userService.update(user));
    }

    /**
     * 刪除數(shù)據(jù)
     *
     * @param id 主鍵
     * @return 刪除是否成功
     */
    @DeleteMapping
    public ResponseEntity<Boolean> deleteById(String id) {
        return ResponseEntity.ok(this.userService.deleteById(id));
    }

}

(User)表服務(wù)接口:user/src/main/java/com/example/user/service/UserService.java

package com.example.user.service;

import com.example.user.entity.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

/**
 * (User)表服務(wù)接口
 *
 * @author makejava
 * @since 2023-06-12 14:13:49
 */
public interface UserService {

    /**
     * 通過ID查詢單條數(shù)據(jù)
     *
     * @param id 主鍵
     * @return 實例對象
     */
    User queryById(String id);

    /**
     * 分頁查詢
     *
     * @param user 篩選條件
     * @param pageRequest      分頁對象
     * @return 查詢結(jié)果
     */
    Page<User> queryByPage(User user, PageRequest pageRequest);

    /**
     * 新增數(shù)據(jù)
     *
     * @param user 實例對象
     * @return 實例對象
     */
    User insert(User user);

    /**
     * 修改數(shù)據(jù)
     *
     * @param user 實例對象
     * @return 實例對象
     */
    User update(User user);

    /**
     * 通過主鍵刪除數(shù)據(jù)
     *
     * @param id 主鍵
     * @return 是否成功
     */
    boolean deleteById(String id);

}

(User)表服務(wù)實現(xiàn)類:user/src/main/java/com/example/user/service/impl/UserServiceImpl.java

package com.example.user.service.impl;

import com.example.user.entity.User;
import com.example.user.dao.UserDao;
import com.example.user.service.UserService;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;

import javax.annotation.Resource;

/**
 * (User)表服務(wù)實現(xiàn)類
 *
 * @author makejava
 * @since 2023-06-12 14:13:50
 */
@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource
    private UserDao userDao;

    /**
     * 通過ID查詢單條數(shù)據(jù)
     *
     * @param id 主鍵
     * @return 實例對象
     */
    @Override
    public User queryById(String id) {
        return this.userDao.queryById(id);
    }

    /**
     * 分頁查詢
     *
     * @param user 篩選條件
     * @param pageRequest      分頁對象
     * @return 查詢結(jié)果
     */
    @Override
    public Page<User> queryByPage(User user, PageRequest pageRequest) {
        long total = this.userDao.count(user);
        return new PageImpl<>(this.userDao.queryAllByLimit(user, pageRequest), pageRequest, total);
    }

    /**
     * 新增數(shù)據(jù)
     *
     * @param user 實例對象
     * @return 實例對象
     */
    @Override
    public User insert(User user) {
        this.userDao.insert(user);
        return user;
    }

    /**
     * 修改數(shù)據(jù)
     *
     * @param user 實例對象
     * @return 實例對象
     */
    @Override
    public User update(User user) {
        this.userDao.update(user);
        return this.queryById(user.getId());
    }

    /**
     * 通過主鍵刪除數(shù)據(jù)
     *
     * @param id 主鍵
     * @return 是否成功
     */
    @Override
    public boolean deleteById(String id) {
        return this.userDao.deleteById(id) > 0;
    }
}

(User)表數(shù)據(jù)庫訪問層:user/src/main/java/com/example/user/dao/UserDao.java

package com.example.user.dao;

import com.example.user.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * (User)表數(shù)據(jù)庫訪問層
 *
 * @author makejava
 * @since 2023-06-12 14:13:45
 */
public interface UserDao {

    /**
     * 通過ID查詢單條數(shù)據(jù)
     *
     * @param id 主鍵
     * @return 實例對象
     */
    User queryById(String id);

    /**
     * 查詢指定行數(shù)據(jù)
     *
     * @param user 查詢條件
     * @param pageable         分頁對象
     * @return 對象列表
     */
    List<User> queryAllByLimit(User user, @Param("pageable") Pageable pageable);

    /**
     * 統(tǒng)計總行數(shù)
     *
     * @param user 查詢條件
     * @return 總行數(shù)
     */
    long count(User user);

    /**
     * 新增數(shù)據(jù)
     *
     * @param user 實例對象
     * @return 影響行數(shù)
     */
    int insert(User user);

    /**
     * 批量新增數(shù)據(jù)(MyBatis原生foreach方法)
     *
     * @param entities List<User> 實例對象列表
     * @return 影響行數(shù)
     */
    int insertBatch(@Param("entities") List<User> entities);

    /**
     * 批量新增或按主鍵更新數(shù)據(jù)(MyBatis原生foreach方法)
     *
     * @param entities List<User> 實例對象列表
     * @return 影響行數(shù)
     * @throws org.springframework.jdbc.BadSqlGrammarException 入?yún)⑹强誏ist的時候會拋SQL語句錯誤的異常,請自行校驗入?yún)?     */
    int insertOrUpdateBatch(@Param("entities") List<User> entities);

    /**
     * 修改數(shù)據(jù)
     *
     * @param user 實例對象
     * @return 影響行數(shù)
     */
    int update(User user);

    /**
     * 通過主鍵刪除數(shù)據(jù)
     *
     * @param id 主鍵
     * @return 影響行數(shù)
     */
    int deleteById(String id);

}

(User)實體類:user/src/main/java/com/example/user/entity/User.java

package com.example.user.entity;

import java.io.Serializable;

/**
 * (User)實體類
 *
 * @author makejava
 * @since 2023-06-12 14:13:46
 */
public class User implements Serializable {
    private static final long serialVersionUID = 264722085318530649L;

    private String id;

    private String name;

    private Integer age;

    private String sex;

    private String phone;


    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

}

SQL:user/src/main/resources/mapper/UserDao.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.user.dao.UserDao">

    <resultMap type="com.example.user.entity.User" id="UserMap">
        <result property="id" column="id" jdbcType="VARCHAR"/>
        <result property="name" column="name" jdbcType="VARCHAR"/>
        <result property="age" column="age" jdbcType="INTEGER"/>
        <result property="sex" column="sex" jdbcType="VARCHAR"/>
        <result property="phone" column="phone" jdbcType="VARCHAR"/>
    </resultMap>

    <!--查詢單個-->
    <select id="queryById" resultMap="UserMap">
        select
        id, name, age, sex, phone
        from user
        where id = #{id}
    </select>

    <!--查詢指定行數(shù)據(jù)-->
    <select id="queryAllByLimit" resultMap="UserMap">
        select
        id, name, age, sex, phone
        from user
        <where>
            <if test="id != null and id != ''">
                and id = #{id}
            </if>
            <if test="name != null and name != ''">
                and name = #{name}
            </if>
            <if test="age != null">
                and age = #{age}
            </if>
            <if test="sex != null and sex != ''">
                and sex = #{sex}
            </if>
            <if test="phone != null and phone != ''">
                and phone = #{phone}
            </if>
        </where>
        limit #{pageable.offset}, #{pageable.pageSize}
    </select>

    <!--統(tǒng)計總行數(shù)-->
    <select id="count" resultType="java.lang.Long">
        select count(1)
        from user
        <where>
            <if test="id != null and id != ''">
                and id = #{id}
            </if>
            <if test="name != null and name != ''">
                and name = #{name}
            </if>
            <if test="age != null">
                and age = #{age}
            </if>
            <if test="sex != null and sex != ''">
                and sex = #{sex}
            </if>
            <if test="phone != null and phone != ''">
                and phone = #{phone}
            </if>
        </where>
    </select>

    <!--新增所有列-->
    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
        insert into user(name, age, sex, phone)
        values (#{name}, #{age}, #{sex}, #{phone})
    </insert>

    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
        insert into user(name, age, sex, phone)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.name}, #{entity.age}, #{entity.sex}, #{entity.phone})
        </foreach>
    </insert>

    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
        insert into user(name, age, sex, phone)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.name}, #{entity.age}, #{entity.sex}, #{entity.phone})
        </foreach>
        on duplicate key update
        name = values(name),
        age = values(age),
        sex = values(sex),
        phone = values(phone)
    </insert>

    <!--通過主鍵修改數(shù)據(jù)-->
    <update id="update">
        update user
        <set>
            <if test="name != null and name != ''">
                name = #{name},
            </if>
            <if test="age != null">
                age = #{age},
            </if>
            <if test="sex != null and sex != ''">
                sex = #{sex},
            </if>
            <if test="phone != null and phone != ''">
                phone = #{phone},
            </if>
        </set>
        where id = #{id}
    </update>

    <!--通過主鍵刪除-->
    <delete id="deleteById">
        delete from user where id = #{id}
    </delete>

</mapper>

到了這里,關(guān)于Java(一):創(chuàng)建 Spring Boot 項目并實現(xiàn)連接操作MySQL數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java實戰(zhàn):Spring Boot實現(xiàn)AOP記錄操作日志

    本文將詳細介紹如何在Spring Boot應(yīng)用程序中使用Aspect Oriented Programming(AOP)來實現(xiàn)記錄操作日志的功能。我們將探討Spring Boot集成AOP的基本概念,以及如何使用Spring Boot實現(xiàn)AOP記錄操作日志。最后,我們將通過一個具體示例來演示整個實現(xiàn)過程。本文適合已經(jīng)具備Spring Boot基礎(chǔ)

    2024年02月22日
    瀏覽(21)
  • Spring Boot入門(09):如何使用MyBatis的XML配置方式實現(xiàn)MySQL的增刪改查操作?

    Spring Boot入門(09):如何使用MyBatis的XML配置方式實現(xiàn)MySQL的增刪改查操作?

    ????????想要快速高效地開發(fā)Java Web應(yīng)用程序,選擇使用Spring Boot和MyBatis無疑是明智之舉。本篇文章將教你使用MyBatis的XML配置方式,結(jié)合MySQL數(shù)據(jù)庫,實現(xiàn)常見的增刪改查操作,讓你的應(yīng)用程序更加實用和強大。跟隨本文一起來探索MyBatis在Spring Boot中的力量吧! ? ? ? ?

    2024年02月11日
    瀏覽(33)
  • Spring Boot項目的創(chuàng)建

    Spring Boot項目的創(chuàng)建

    hi 大家好,又見面了,今天繼續(xù)講解Spring Boot Spring 的誕?是為了簡化 Java 程序的開發(fā)的,? Spring Boot 的誕?是為了簡化 Spring 程序開發(fā)的。 Spring Boot是基于Spring框架的一個輕量級開發(fā)框架,目的是讓開發(fā)Spring應(yīng)用變得更加簡單快捷. Spring Boot是Spring腳手架,就是為了快速開發(fā) Spr

    2024年02月14日
    瀏覽(20)
  • 如何創(chuàng)建 Spring Boot 項目

    如何創(chuàng)建 Spring Boot 項目

    目錄 一、Spring Boot 項目的創(chuàng)建 1. 安裝 Spring Boot Helper 插件 2. 創(chuàng)建 Spring Boot 項目 3. 項目目錄詳解 4. 運行 Spring Boot 項目 二、Spring Boot 的優(yōu)點 前言 ? ??Spring Boot 的意思就是 Spring Boot 腳手架的意思,已經(jīng)總結(jié)完成 Spring 的學(xué)習(xí),Spring 框架的誕生就是為了簡化 Java程序的開發(fā),而

    2024年02月15日
    瀏覽(20)
  • 【Spring Boot學(xué)習(xí)一】創(chuàng)建項目 && Spring Boot的配置文件

    【Spring Boot學(xué)習(xí)一】創(chuàng)建項目 && Spring Boot的配置文件

    目錄 一、安裝插件 二、創(chuàng)建Spring Boot項目 1、創(chuàng)建項目 1.1?使用IDEA創(chuàng)建 ?1.2?網(wǎng)頁版本創(chuàng)建 2、項目目錄介紹與運行 三、Sping Boot的配置文件(重點) ??1、.properties配置文件 (1)基礎(chǔ)語法:Key = value (2)讀取配置?件中的內(nèi)容,@Value 注解使?“${}”的格式讀取; ??2、.y

    2024年02月16日
    瀏覽(38)
  • 2023 最新版IntelliJ IDEA 2023.1創(chuàng)建Java Web前(vue3)后端(spring-boot3)分離 項目詳細步驟(圖文詳解)

    2023 最新版IntelliJ IDEA 2023.1創(chuàng)建Java Web前(vue3)后端(spring-boot3)分離 項目詳細步驟(圖文詳解)

    2023 最新版IntelliJ IDEA 2023.1創(chuàng)建Java Web 項目詳細步驟(圖文詳解) 本篇使用當(dāng)前Java Web開發(fā)主流的spring-boot3框架來創(chuàng)建一個Java前后端分離的項目,前端使用的也是目前前端主流的vue3進行一個簡單的項目搭建,讓你距離Java全棧開發(fā)更近一步 ?????。 使用版本: “17.0.1”

    2024年02月12日
    瀏覽(34)
  • 新版idea創(chuàng)建spring boot項目

    新版idea創(chuàng)建spring boot項目

    目錄 前言 漢化教程 項目模板初始化 1.點擊新建項目 2.配置初始化信息 3.初始依賴選擇 配置Maven 1.打開maven設(shè)置 2.重寫maven配置文件 3.選擇你創(chuàng)建的配置文件 4.重啟項目 spring boot配置并測試 1.修改配置文件后綴 2.啟動項目 3.編寫測試控制類 4.重啟項目測試 保底策略 1.git方式獲

    2024年01月24日
    瀏覽(21)
  • 創(chuàng)建并運行一個 Spring Boot 項目

    創(chuàng)建并運行一個 Spring Boot 項目

    Spring Boot 是 Spring 框架的腳手架,它存在的目的就是為了快速開發(fā) Spring 框架而誕生的。如何理解 Spring Boot 和 Spring 呢? 如果將 Spring 比喻成農(nóng)民拿鐮刀手動割草,那么 Spring Boot 就相當(dāng)于專業(yè)人員駕駛著割草機,自動割草。而之前的 Servlet 就是普通人,在田地里直接用手撥草

    2024年02月09日
    瀏覽(16)
  • 【解決】Spring Boot創(chuàng)建項目常見問題

    【解決】Spring Boot創(chuàng)建項目常見問題

    ???個人主頁:Dikz12 ??個人專欄:Spring學(xué)習(xí)之路 ??格言:吾愚多不敏,而愿加學(xué) 歡迎大家??點贊?評論?收藏 目錄 idea無maven選項? 無效發(fā)行版17? 類?件具有錯誤的版本 61.0, 應(yīng)為 52.0? Maven jar 包下載失敗問題處理 1.檢查配置Maven源 正確的settings.xml?件(配置了國內(nèi)源)

    2024年04月25日
    瀏覽(21)
  • 手動創(chuàng)建Spring Boot 2.x項目

    手動創(chuàng)建Spring Boot 2.x項目

    創(chuàng)建SpringBoot可以選擇手動 也可以利用官方腳手架, 對于新手來說, 先手動創(chuàng)建是個不錯的選擇 JDK1.8 或以上 Gradle 4+ or Maven 3.2+ IDE、Eclipse 注意 ,拉包慢的記得配置一下阿里源, 否則浪費時間, 配置阿里源再 Maven快速入門 這篇文章里面有 再說一下以上填寫的基本規(guī)則吧。 group

    2024年02月08日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包