欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:MyBatis數(shù)據(jù)庫查詢

柚子快報激活碼778899分享:MyBatis數(shù)據(jù)庫查詢

http://yzkb.51969.com/

文章目錄

什么是MyBatisMyBatis程序的創(chuàng)建MyBatis實(shí)現(xiàn)數(shù)據(jù)庫查詢傳參查詢插入實(shí)現(xiàn)添加操作獲取自增ID刪除實(shí)現(xiàn)修改實(shí)現(xiàn)#{}和${}SQL注入

like查詢

resultMap和resultType多表查詢

對于普遍的后端開發(fā)而言,其程序主要包含了后端主程序和數(shù)據(jù)庫兩個部分,用戶訪問前端頁面,前端發(fā)送數(shù)據(jù)給后端程序,后端從數(shù)據(jù)庫中查詢用戶需要的信息返回給前端,如此即完成了一次完整的數(shù)據(jù)查詢。MyBatis就是一種作為后端程序與數(shù)據(jù)庫連接和交互的工具。

什么是MyBatis

MyBatis是一款支持自定義SQL、存儲過程及高級映射的持久層框架。它不同于JDBC操作的繁瑣,是通過簡單的xml和注解來進(jìn)行接口或?qū)ο蟮呐渲煤陀成?,是一種更加簡單地用來完成程序和數(shù)據(jù)庫交互的工具。

MyBatis程序的創(chuàng)建

與SpringMVC項(xiàng)目的創(chuàng)建類似,首先需要額外添加MyBatis的框架依賴:再設(shè)置數(shù)據(jù)庫的連接配置:

在application.properties文件中進(jìn)行數(shù)據(jù)庫的連接信息的配置:

如果使? MySQL 是 5.x 之前的使?的是“com.mysql.jdbc.Driver", 如果是?于 5.x 使?的是“com.mysql.cj.jdbc.Driver”

此時,這個MyBatis 程序就可以成功運(yùn)行了。

再對MyBatis xml文件的存放位置和命名規(guī)則進(jìn)行配置,同樣是在application.properties文件中進(jìn)行 配置:

MyBatis實(shí)現(xiàn)數(shù)據(jù)庫查詢

MyBatis作為程序服務(wù)層和數(shù)據(jù)庫連接的工具,簡單來說由用來給當(dāng)前類作方法聲明的接口和對應(yīng)的xml文件組成;

添加實(shí)體類

實(shí)體類中屬性的名稱與數(shù)據(jù)庫中的字段名稱必須保持一致:

package com.example.demo.model;

import lombok.Data;

import java.util.Date;

@Data

public class UserInfo {

private int id;

private String username;

private String password;

private String photo;

private Date createtime;

private Date updatetime;

private int state;

}

添加mapper接口

package com.example.demo.mapper;

import com.example.demo.model.UserInfo;

import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper

public interface UserMapper {

public List getAll();

}

@Mapper注解由MyBatis提供,標(biāo)明當(dāng)前類是一個mapper接口,不可以省略;

添加對應(yīng)的xml文件

創(chuàng)建一個xml文件,首先寫入MyBatis固定的xml格式:

具體mapper的命名空間(包名+接口類)需要根據(jù)實(shí)際代碼進(jìn)行修改;

在xml文件中實(shí)現(xiàn)SQL 使用單元測試進(jìn)行驗(yàn)證

數(shù)據(jù)庫查詢結(jié)果:

單元測試:

package com.example.demo.mapper;

import com.example.demo.model.UserInfo;

import org.junit.jupiter.api.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

import static org.junit.jupiter.api.Assertions.*;

@SpringBootTest //標(biāo)識當(dāng)前測試的上下文環(huán)境為springboot

class UserMapperTest {

@Autowired //注入需要測試的類

private UserMapper userMapper;

@Test

void getAll() {

//實(shí)現(xiàn)測試代碼

List list=userMapper.getAll();

for (UserInfo user:list){

System.out.println(user.toString());

}

}

}

mybatis查詢數(shù)據(jù)庫結(jié)果:

傳參查詢

添加@Param注解,可以增強(qiáng)代碼的跨平臺性; xml文件中的SQL語句實(shí)現(xiàn),參數(shù)的格式需要特別注意;

使用單元測試進(jìn)行驗(yàn)證:

當(dāng)@Param注解中的參數(shù)與實(shí)體類的屬性名稱不同時,xml文件中SQL語句的參數(shù)與@Param注解中的保持一致;

插入實(shí)現(xiàn)

除查詢外,增刪改默認(rèn)返回的是受影響的行數(shù);

通過數(shù)據(jù)庫查詢驗(yàn)證:

添加操作獲取自增ID

useGeneratedKeys得到數(shù)據(jù)庫內(nèi)部生成的 主鍵; keyColumn設(shè)置生成的鍵在數(shù)據(jù)表中的列名; keyProperty指定唯一識別對象的屬性

單元測試:

刪除實(shí)現(xiàn)

修改實(shí)現(xiàn)

可以進(jìn)一步在數(shù)據(jù)庫中驗(yàn)證:

#{}和${}

在xml文件中實(shí)現(xiàn)SQL語句時,可以使用#{}和${}兩種參數(shù)占位符;

#{}代表預(yù)編譯處理,即MyBatis在處理占位符處的參數(shù)時,是將#{}替換為?符號,后使用 PreparedStatement的set方法來賦值; $ {}代表字符的直接替換,即直接將${}替換成變量的值;

兩種占位符各有優(yōu)缺; #{}預(yù)編譯處理的方式在遇到像上面這種直接替換的字符串時,會給傳遞的值添加單引號,無法完成查詢; $ {}直接替換的方式則是有可能會帶來越權(quán)查詢和操作數(shù)據(jù)的問題,帶來一些安全問題;

SQL注入

SQL注入是一種常見的網(wǎng)絡(luò)攻擊方式,它是利用數(shù)據(jù)庫查詢的bug,通過SQL語句來實(shí)現(xiàn)對數(shù)據(jù)的無差別查詢;

用于查詢的字段,更推薦使用#{}預(yù)編譯的處理方式;

like查詢

如果使用上面兩種占位符的方式進(jìn)行模糊查詢:

預(yù)編譯的方式程序會出現(xiàn)報錯,直接替換的方式可以查詢成功,但不安全。因此可以考慮使用mysql的內(nèi)置函數(shù)concat來查詢;

resultMap和resultType

resultType是對查詢的對象的返回類型進(jìn)行設(shè)置,大多數(shù)場景使用resultType就可以;resultMap則是當(dāng)數(shù)據(jù)庫的字段名與程序的屬性名不一致時,使用該標(biāo)簽就可以進(jìn)行配置;

多表查詢

首先需要在主表添加需要查詢的連接表的屬性:

定義查詢方法和查詢語句: 得到查詢結(jié)果:

柚子快報激活碼778899分享:MyBatis數(shù)據(jù)庫查詢

http://yzkb.51969.com/

好文鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19065838.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄