SpringBoot-2整合MyBatis以及基本的使用方法

目錄

1.引入依賴

2.數據庫表的創建

3.數據源的配置

4.編寫pojo類

5.編寫controller類

6.編寫接口

7.編寫接口的實現類

8.編寫mapper


1.引入依賴

在pom.xml引入依賴

<!--        mysql--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency>
<!--mybaits--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency>
<!--        lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>

2.數據庫表的創建

create database SpringbootDB;
use SpringbootDB;CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,password VARCHAR(255) NOT NULL,phone VARCHAR(15) NOT NULL UNIQUE,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);INSERT INTO users (username, password, phone) VALUES('張三', 'hashed_abc123', '13800138000'),('李四', 'hashed_def456', '13800138001');

3.數據源的配置

在yml文件配置

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springbootdbusername: rootpassword: 1234

4.編寫pojo類

package com.leo.springboothd.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data // Lombok annotation to generate all the boilerplate that is normally associated with simple POJOs (Plain Old Java Objects), including getters, setters, equals, hash, and toString methods.
@NoArgsConstructor // Lombok annotation to create an empty constructor.
@AllArgsConstructor // Lombok annotation to create a constructor with all properties as arguments.
public class User {private String username; // 用戶名private String password; // 密碼private String phone; // 電話號碼// 注意:這里沒有包含'id'和'created_at'字段,因為它們在原始請求中被省略了。// 如果需要與數據庫中的表進行映射,請確保這些字段的存在與否符合你的需求。
}
package com.leo.springboothd.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {private Integer code;//響應碼,1 代表成功; 0 代表失敗private String msg;  //響應信息 描述字符串private Object data; //返回的數據//增刪改 成功響應public static Result success(){return new Result(0,"success",null);}//查詢 成功響應public static Result success(Object data){return new Result(0,"success",data);}//失敗響應public static Result error(String msg){return new Result(1,msg,null);}
}

5.編寫controller類

package com.leo.springboothd.Controller;import com.leo.springboothd.pojo.Result;
import com.leo.springboothd.pojo.User;
import com.leo.springboothd.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@Slf4j
@RestControllerpublic class UserController {@Autowiredprivate UserService userService;@PostMapping("/register")public Result add(@RequestBody User user) {log.info("注冊信息{}",user);userService.add(user);System.out.println("用戶新增成功"+user);return Result.success();}@PostMapping("/login")public Result login(@RequestBody User user) {log.info("登錄信息{}",user);User userResult=userService.login(user);if(userResult==null){System.out.println("沒有此用戶");return Result.error("沒有此用戶");}else{System.out.println("用戶登錄成功"+user);return Result.success("登錄成功");}}@GetMapping("/getall")public Result getall() {log.info("執行查詢所有的Users操作");List<User> users= userService.getall();return Result.success(users);}}

6.編寫接口

package com.leo.springboothd.service.impl;import com.leo.springboothd.mapper.UserMapper;
import com.leo.springboothd.pojo.User;
import com.leo.springboothd.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserServiceImpl1 implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic void add(User user) {userMapper.add(user);}@Overridepublic List<User> getall() {return  userMapper.getall();}@Overridepublic User login(User user) {return userMapper.login(user);}
}

7.編寫接口的實現類

package com.leo.springboothd.service.impl;import com.leo.springboothd.mapper.UserMapper;
import com.leo.springboothd.pojo.User;
import com.leo.springboothd.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserServiceImpl1 implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic void add(User user) {userMapper.add(user);}@Overridepublic List<User> getall() {return  userMapper.getall();}@Overridepublic User login(User user) {return userMapper.login(user);}
}

8.編寫mapper

package com.leo.springboothd.mapper;import com.leo.springboothd.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface UserMapper {@Insert("insert into users (username, password, phone) values (#{username}, #{password}, #{phone})")void add(User user);@Select("select * from users")List<User> getall();@Select("select * from users where username=#{username} and password=#{password}")User login(User user);
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73867.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73867.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73867.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unity Shader Graph高級節點邏輯設計:程序化噪聲生成技術詳解

一、程序化噪聲的核心價值 程序化噪聲生成是Shader開發中的關鍵核心技術&#xff0c;通過數學算法直接生成紋理信息&#xff0c;相較于傳統位圖紋理具有以下優勢&#xff1a; 無限分辨率&#xff1a;可動態適應任意顯示精度 參數化控制&#xff1a;實時調整噪聲頻率、振幅等屬…

[藍橋杯 2023 省 B] 飛機降落(不會dfs的看過來)

[藍橋杯 2023 省 B] 飛機降落 題目描述 N N N 架飛機準備降落到某個只有一條跑道的機場。其中第 i i i 架飛機在 T i T_{i} Ti? 時刻到達機場上空&#xff0c;到達時它的剩余油料還可以繼續盤旋 D i D_{i} Di? 個單位時間&#xff0c;即它最早可以于 T i T_{i} Ti? 時刻…

英偉達GTC 2025大會產品全景剖析與未來路線深度洞察分析

【完整版】3月19日&#xff0c;黃仁勛Nvidia GTC 2025 主題演講&#xff5c;英偉達 英偉達GTC 2025大會產品全景剖析與未來路線深度洞察分析 一、引言 1.1 分析內容 本研究主要采用了文獻研究法、數據分析以及專家觀點引用相結合的方法。在文獻研究方面&#xff0c;廣泛收集了…

強化學習 - PPO控制無人機

PPO&#xff08;Proximal Policy Optimization&#xff0c;近端策略優化&#xff09;是一種強化學習算法&#xff0c;用于訓練智能體&#xff08;無人機&#xff09;如何在環境中做出決策。它本質上是 策略梯度&#xff08;Policy Gradient&#xff09;方法 的一種改進&#xf…

YOLO11報錯:AttributeError: module ‘torch‘ has no attribute ‘OutOfMemoryError‘

事情是這樣的&#xff1a;前幾天YOLO11的代碼還是可以訓練的&#xff0c;昨天訓練了一天&#xff0c;今天換模型就報這個錯。 AttributeError: module torch has no attribute OutOfMemoryError我查了一下&#xff1a;YOLO11官方代碼issues里面也有人有同樣的問題&#xff0c;…

Prometheus使用

介紹&#xff1a;Prometheus 是一個開源的 監控與告警系統&#xff0c;主要用于采集和存儲時間序列數據&#xff08;Time Series Data&#xff09; Prometheus的自定義查詢語言PromQL Metric類型 為了能夠幫助用戶理解和區分這些不同監控指標之間的差異&#xff0c;Prometheu…

ESG報告評級標準解讀

ESG&#xff08;環境、社會、治理&#xff09;報告評級標準用于評估企業在環境、社會和公司治理方面的表現。以下是主要評級標準的解讀&#xff1a; 1. 環境&#xff08;Environmental&#xff09; 碳排放&#xff1a;評估企業的溫室氣體排放及減排措施。 能源使用&#xff1…

清晰易懂的 PHP 安裝與配置教程

初學者也能看懂的 PHP 安裝與配置教程 本教程將手把手教你如何在 Windows 系統上安裝 PHP&#xff0c;并配置 Composer&#xff08;PHP 的依賴管理工具&#xff09;的緩存位置&#xff0c;即使你是零基礎小白&#xff0c;也能輕松完成&#xff01; 一、準備工作 操作系統&…

Zabbix監控自動化(Zabbix Mnitoring Automation)

??????zabbix監控自動化 1、自動化監控(網絡發現與自動注冊只能用其一) 1.1 ansible安裝zabbix agent 新采購100臺服務器&#xff1a; 1、安裝操作系統 2、初始化操作系統 3、安裝zabbix agent 1.手動部暑 2.腳本部暑(shell expect) 3.ansible 4、納入監控 1.…

Android Launcher3 首屏圖標鎖定技術方案解析

一、需求背景與技術挑戰 在Android 13系統定制開發中&#xff0c;需實現Launcher首屏圖標固定功能。該需求需在以下技術維度進行突破&#xff1a; 拖拽事件攔截機制&#xff1a;需精準識別拖拽目標區域 布局層級判定&#xff1a;準確識別第一屏的布局標識 跨屏操作限制&…

Spring Framework 中 BeanDefinition 是什么

BeanDefinition 是 Spring Framework 中一個核心的接口&#xff0c;它描述了一個 Bean 的定義。你可以把它看作是 Spring IoC 容器中 Bean 的“藍圖”或“配置元數據”。它包含了 Spring 容器創建、配置和管理 Bean 所需的所有信息。 BeanDefinition 中包含的信息&#xff1a;…

QtCreator16創建WebAssembly工程在瀏覽器中顯示圖片

顯示效果&#xff1a; 實現過程&#xff1a; 添加qrc資源文件 輸入文件名&#xff1a; 選擇模板為Qt Resource File 在工程目錄下創建res文件夾&#xff0c;復制圖片文件到res中 編輯qrc文件 添加資源前綴 添加圖片資源 選擇圖片資源添加別名 復制資源URL 使用別名調用資源 居…

openpnp - 如果安裝面的鈑金接觸面不平,可以嘗試加墊片

文章目錄 openpnp - 如果安裝面的鈑金接觸面不平&#xff0c;可以嘗試加墊片概述吐槽備注END openpnp - 如果安裝面的鈑金接觸面不平&#xff0c;可以嘗試加墊片 概述 在X軸導軌上&#xff0c;架上百分表&#xff0c;打設備的工作平面的平面度&#xff0c;發現工作平面不平(和…

人工智能之數學基礎:線性方程組

本文重點 線性方程組是由兩個或兩個以上的線性方程組成的方程組,其中每個方程都是關于兩個或兩個以上未知數的線性方程。 記憶恢復 我們先從小學學習的線性方程組找到感覺 解答過程: 將第二個方程乘以2,得到: 2x?2y=2 將第一個方程減去新得到的方程,消去x: (2x+y)?…

DeepSeek-R1思路訓練多模態大模型-Vision-R1開源及實現方法思路

剛開始琢磨使用DeepSeek-R1風格訓練多模態R1模型&#xff0c;就看到這個工作&#xff0c;本文一起看看&#xff0c;供參考。 先提出問題&#xff0c;僅靠 RL 是否足以激勵 MLLM 的推理能力&#xff1f; 結論&#xff1a;不能&#xff0c;因為如果 RL 能有效激勵推理能力&#…

鴻蒙NEXT項目實戰-百得知識庫04

代碼倉地址&#xff0c;大家記得點個star IbestKnowTeach: 百得知識庫基于鴻蒙NEXT穩定版實現的一款企業級開發項目案例。 本案例涉及到多個鴻蒙相關技術知識點&#xff1a; 1、布局 2、配置文件 3、組件的封裝和使用 4、路由的使用 5、請求響應攔截器的封裝 6、位置服務 7、三…

免密登錄遠程服務器shell腳本

一、腳本代碼 #!/bin/bash #提示用戶輸入用戶i名和ip地址 read -p "請輸入遠程服務器的用戶名: " hname read -p "請輸入遠程服務器的IP地址: " fip read -p "請輸入遠程服務器的遠程端口:" sdk #檢查是否配置了免密登錄 function sfmm(){ …

WiFi 定位技術:守護寵物安全的隱形衛士

一、實時追蹤&#xff0c;防患未然 想象一下&#xff0c;活潑好動的貓咪趁你開門瞬間溜出家門&#xff0c;穿梭在樓道雜物間&#xff1b;或是狗狗在戶外玩耍時&#xff0c;被突發聲響驚嚇狂奔&#xff0c;瞬間沒了蹤影。在這些令人揪心的時刻&#xff0c;WiFi 定位技術就像給寵…

《C#上位機開發從門外到門內》3-2::Modbus數據采集系統

文章目錄 **1. 項目概述****1.1 項目背景****1.2 項目目標****1.3 技術棧** **2. 系統架構設計****2.1 系統架構圖****2.2 模塊功能** **3. 數據采集模塊實現****3.1 Modbus協議簡介****3.2 數據采集流程****3.3 代碼實現** **4. 數據存儲模塊實現****4.1 數據庫設計****4.2 數…

Carto 無盡旅圖 for Mac v1.0.7.6 (51528)冒險解謎游戲 支持M、Intel芯片

游戲介紹 《Carto》源于英文"Cartographer"&#xff08;制圖師&#xff09;&#xff0c;卡朵不慎墜入未知世界。這里蜿蜒曲折&#xff0c;地形豐富。作為制圖師卡朵&#xff0c;你將用你自己的神秘力量&#xff0c;操縱地圖顛覆世界&#xff0c;將其翻轉、拼合。當世…