最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Spring Boot實(shí)現(xiàn)操作數(shù)據(jù)庫(kù)的接口的過(guò)程

 更新時(shí)間:2021年07月21日 14:44:06   作者:ouyangsong_pass_fail  
本文給大家分享使用Spring Boot實(shí)現(xiàn)操作數(shù)據(jù)庫(kù)的接口的過(guò)程,包括springboot原理解析及實(shí)例代碼詳解,感興趣的朋友跟隨小編一起看看吧

一、Spring Boot原理

用戶從頁(yè)面前端,也就是我們所說(shuō)的 view 層進(jìn)行查詢?cè)L問(wèn),進(jìn)入到 controller 層找到對(duì)應(yīng)的接口,接 著 controller 進(jìn)行對(duì) service 層進(jìn)行業(yè)務(wù)功能的調(diào)用,service 要進(jìn)入 dao 層查詢數(shù)據(jù),dao 層調(diào)用 mapper.xml 文件生成 sql 語(yǔ)句到數(shù)據(jù)庫(kù)中進(jìn)行查詢

在這里插入圖片描述

二、實(shí)現(xiàn)過(guò)程

2.1、準(zhǔn)備數(shù)據(jù)庫(kù)user表插入四條數(shù)據(jù)

在這里插入圖片描述

2.2、model下創(chuàng)建一個(gè)User類

與數(shù)據(jù)庫(kù)的字段一一對(duì)應(yīng)

@Getter @Setter
public class User {
    private int id;
    private String username;
    private String password;
    private int age;
}

2.3、dao下創(chuàng)建一個(gè)UserDao接口

@Repository注解修飾哪個(gè)類,則表明這個(gè)類具有對(duì)對(duì)象進(jìn)行CRUD(增刪改查)的功能

@Repository
public interface UserDao {
    public User getUserById(@Param("id") int id);
    public List<User> getUserByAge(@Param("age") int age);
    public List<User> getUserByName(@Param("username") String username);
    public int insertUser(@RequestBody User user);

}

通過(guò)UserMapping.xml配置文件實(shí)現(xiàn)UserDao接口

<?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.dao.UserDao">
    <select id="getUserById" resultType="User">
        select * from `user` where id=#{id}
    </select>
    <select id="getUserByAge" resultType="User">
        select * from `user` where age=#{age}
    </select>
    <select id="getUserByName" resultType="User">
        select * from `user` where username like concat('%',#{username},'%')
    </select>

    <insert id="insertUser" parameterType="User">
        <selectKey keyProperty="id" order="AFTER" resultType="int">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into user (username, password, age)
        values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER})
    </insert>
</mapper>

2.4、Service下創(chuàng)建一個(gè)UserService接口

public interface UserService {
    public User queryUserById(int id);
    public List<User> queryUserByAge(int age);
    public List<User> queryUserByName(String username);
    public int insertUser(User user);
}

再創(chuàng)建一個(gè)UserServiceImpl實(shí)現(xiàn)UserService

@Service
public class UserSeviceImpl implements UserService {
    @Autowired
    private UserDao userDao;

    @Override
    public User queryUserById(int id) {
        return userDao.getUserById(id);
    }

    @Override
    public List<User> queryUserByAge(int age) {
        return userDao.getUserByAge(age);
    }

    @Override
    public List<User> queryUserByName(String username) {
        return userDao.getUserByName(username);
    }

    @Override
    public int insertUser(User user) {
        return userDao.insertUser(user);
    }
}

2.5、controller下創(chuàng)建一個(gè)UserController

@GetMapping是代表該查詢接口用的是get方式
@RequestMapping(value="/insert",method = RequestMethod.POST)代表該插入接口用post方式

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/userid")
    public User getUserById(@RequestParam("id") int id){
        return userService.queryUserById(id);
    }

    @GetMapping("/username")
    public List<User> getUserByUsername(@RequestParam("username") String username){
        return userService.queryUserByName(username);
    }

    @RequestMapping(value="/insert",method = RequestMethod.POST)
    public User insertUser(@RequestBody User user){
        int x = userService.insertUser(user);
        return user;
    }
}

2.6、application.yml文件連接數(shù)據(jù)庫(kù)

server:
  port: 8080
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/testingdev9?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
mybatis:
  mapper-locations:
    - classpath:mapper/*.xml
    - classpath*:com/**/mapper/*.xml
  type-aliases-package: com.example.demo.model

2.7、啟動(dòng)DemoApplication文件

出現(xiàn)Started DemoApplication代表啟動(dòng)成功了

在這里插入圖片描述

2.8、使用postman調(diào)用接口

如下圖根據(jù)id查詢

在這里插入圖片描述

如下圖插入數(shù)據(jù)

在這里插入圖片描述

可以看到數(shù)據(jù)庫(kù)多了一條數(shù)據(jù)

在這里插入圖片描述

到此這篇關(guān)于使用Spring Boot實(shí)現(xiàn)操作數(shù)據(jù)庫(kù)的接口的過(guò)程的文章就介紹到這了,更多相關(guān)Spring Boot操作數(shù)據(jù)庫(kù)接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Bean生命周期之屬性賦值階段詳解

    Spring Bean生命周期之屬性賦值階段詳解

    這篇文章主要為大家詳細(xì)介紹了Spring Bean生命周期之屬性賦值階段,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • java IO 文件操作方法總結(jié)

    java IO 文件操作方法總結(jié)

    這篇文章主要介紹了java IO 文件操作方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java?獲取Zookeeper節(jié)點(diǎn)下所有數(shù)據(jù)詳細(xì)步驟

    Java?獲取Zookeeper節(jié)點(diǎn)下所有數(shù)據(jù)詳細(xì)步驟

    本文介紹了如何使用Java獲取ZooKeeper節(jié)點(diǎn)下所有數(shù)據(jù),實(shí)際應(yīng)用示例中,我們演示了如何從ZooKeeper節(jié)點(diǎn)下獲取配置信息并輸出到控制臺(tái),ZooKeeper是一個(gè)開(kāi)源的分布式協(xié)調(diào)服務(wù),適用于分布式系統(tǒng)中的數(shù)據(jù)同步、配置管理、命名服務(wù)等功能,感興趣的朋友一起看看吧
    2024-11-11
  • Integer和int的區(qū)別實(shí)例詳解

    Integer和int的區(qū)別實(shí)例詳解

    這篇文章主要介紹了Integer和int的區(qū)別實(shí)例詳解,文字和代碼實(shí)例講解的很清楚,有感興趣的同學(xué)可以學(xué)習(xí)下
    2021-03-03
  • java連接mongoDB并進(jìn)行增刪改查操作實(shí)例詳解

    java連接mongoDB并進(jìn)行增刪改查操作實(shí)例詳解

    這篇文章主要介紹了java連接mongoDB并進(jìn)行增刪改查操作,結(jié)合實(shí)例形式詳細(xì)分析了java環(huán)境下MongoDB擴(kuò)展包的下載、安裝及操作MongoDB連接、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • springboot集成Mybatis-plus-join-boot-start詳解

    springboot集成Mybatis-plus-join-boot-start詳解

    這篇文章主要介紹了springboot集成Mybatis-plus-join-boot-start方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Java 實(shí)現(xiàn)緩存的三種方式及問(wèn)題匯總

    Java 實(shí)現(xiàn)緩存的三種方式及問(wèn)題匯總

    這篇文章主要介紹了Java 實(shí)現(xiàn)緩存的三種方式及問(wèn)題匯總,HashMap實(shí)現(xiàn)緩存,可以實(shí)現(xiàn)簡(jiǎn)單的本地緩存,但是實(shí)際開(kāi)發(fā)中不推薦,我們可以簡(jiǎn)單模擬一下緩存的實(shí)現(xiàn),本文通過(guò)示例代碼介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-03-03
  • Springboot PostMapping無(wú)法獲取數(shù)據(jù)問(wèn)題及解決

    Springboot PostMapping無(wú)法獲取數(shù)據(jù)問(wèn)題及解決

    這篇文章主要介紹了Springboot PostMapping無(wú)法獲取數(shù)據(jù)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 使用JAXBContext 設(shè)置xml節(jié)點(diǎn)屬性

    使用JAXBContext 設(shè)置xml節(jié)點(diǎn)屬性

    這篇文章主要介紹了使用JAXBContext 設(shè)置xml節(jié)點(diǎn)屬性的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • springboot循環(huán)依賴問(wèn)題案例代碼及解決辦法

    springboot循環(huán)依賴問(wèn)題案例代碼及解決辦法

    在 Spring Boot 中,如果兩個(gè)或多個(gè) Bean之間存在循環(huán)依賴(即 Bean A 依賴 Bean B,而 Bean B 又依賴 Bean A),會(huì)導(dǎo)致 Spring 的依賴注入機(jī)制無(wú)法正確處理,從而拋出異常,下面給大家介紹springboot循環(huán)依賴問(wèn)題及其解決辦法,感興趣的朋友一起看看吧
    2025-04-04

最新評(píng)論

大关县| 呼伦贝尔市| 美姑县| 陇川县| 瑞丽市| 瓦房店市| 巴林左旗| 明光市| 红原县| 桂东县| 祁东县| 娄底市| 松江区| 房山区| 贵溪市| 泰宁县| 游戏| 拜城县| 宝山区| 石嘴山市| 江源县| 郑州市| 新蔡县| 古浪县| 夹江县| 荔浦县| 双辽市| 巩留县| 江都市| 澎湖县| 兴宁市| 玉环县| 高州市| 北流市| 同心县| 香格里拉县| 龙海市| 满洲里市| 江门市| 南丹县| 鄂州市|