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

SpringBoot集成SQL?Server的詳細(xì)指南

 更新時(shí)間:2024年11月12日 08:23:04   作者:HBLOG  
SQL?Server是由Microsoft開發(fā)和推廣的以客戶/服務(wù)器(c/s)模式訪問、使用Transact-SQL語言的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),本文給大家介紹了Spring?Boot集成SQL?Server的詳細(xì)指南,需要的朋友可以參考下

1.什么是SQL Server?

SQL Server是由Microsoft開發(fā)和推廣的以客戶/服務(wù)器(c/s)模式訪問、使用Transact-SQL語言的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,并于1988年推出了第一個(gè)OS/2版本。Microsoft SQL Server近年來不斷更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用戶見面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2019年份推出的SQL SERVER 2019。 提供的主要功能:

  • 支持存儲(chǔ)過程、觸發(fā)器、函數(shù)和視圖
  • 本機(jī)支持關(guān)系數(shù)據(jù)、XML、FILESTREAM 和空間數(shù)據(jù),可存儲(chǔ)所有類型的業(yè)務(wù)數(shù)據(jù)
  • 除與 SQL Server Reporting Services 中的 Microsoft 2007 Office System 集成外,還改進(jìn)了性能、可用性、可視化
  • 通過利用現(xiàn)有的 T-SQL 技術(shù)、ADO.NET 實(shí)體框架和 LINQ 簡(jiǎn)化開發(fā)工作
  • 與 Visual Studio 和 Visual Web Developer 緊密集成

SQL Server 2019 更是使用統(tǒng)一的數(shù)據(jù)平臺(tái)實(shí)現(xiàn)業(yè)務(wù)轉(zhuǎn)型,附帶 Apache Spark 和 Hadoop Distributed File System(HDFS),可實(shí)現(xiàn)所有數(shù)據(jù)的智能化。

2.環(huán)境搭建

pull images

sudo docker pull mcr.microsoft.com/mssql/server:2022-latest

create a container

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Y.sa123456" -p 1433:1433 --name mssql2022 -d mcr.microsoft.com/mssql/server:2022-latest

default user/password: sa / Y.sa123456

init datas

CREATE DATABASE SampleDB;
USE SampleDB;

#JPA AUTO CREATE TABLE

INSERT INTO Employees (first_name, last_name, birth_date, hire_date, position)
VALUES 
('John', 'Doe', '1980-01-15', '2010-06-01', 'Manager'),
('Jane', 'Smith', '1990-07-22', '2015-09-15', 'Developer'),
('Emily', 'Jones', '1985-03-10', '2012-11-20', 'Designer');

3.代碼工程

實(shí)驗(yàn)?zāi)康?/h3>

Spring Boot對(duì)SQL Server 數(shù)據(jù)庫(kù)CRUD 操作

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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>springboot-demo</artifactId>
        <groupId>com.et</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>sqlserver</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>9.4.0.jre8</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
</project>

controller

package com.et.controller;

import com.et.entity.Employee;
import com.et.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/employees")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @GetMapping
    public List<Employee> getAllEmployees() {
        return employeeService.getAllEmployees();
    }

    @GetMapping("/{id}")
    public ResponseEntity<Employee> getEmployeeById(@PathVariable Integer id) {
        return employeeService.getEmployeeById(id)
                .map(ResponseEntity::ok)
                .orElse(ResponseEntity.notFound().build());
    }

    @PostMapping
    public Employee addEmployee(@RequestBody Employee employee) {
        return employeeService.addEmployee(employee);
    }

    @PutMapping("/{id}")
    public ResponseEntity<Employee> updateEmployee(@PathVariable Integer id, @RequestBody Employee employeeDetails) {
        return ResponseEntity.ok(employeeService.updateEmployee(id, employeeDetails));
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteEmployee(@PathVariable Integer id) {
        employeeService.deleteEmployee(id);
        return ResponseEntity.noContent().build();
    }
}

service

package com.et.service;

import com.et.entity.Employee;
import com.et.reponsitory.EmployeeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.NoSuchElementException;
import java.util.Optional;

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    public List<Employee> getAllEmployees() {
        return employeeRepository.findAll();
    }

    public Optional<Employee> getEmployeeById(Integer id) {
        return employeeRepository.findById(id);
    }

    public Employee addEmployee(Employee employee) {
        return employeeRepository.save(employee);
    }

    public Employee updateEmployee(Integer id, Employee employeeDetails) {
        Employee employee = employeeRepository.findById(id).orElseThrow(RuntimeException::new);
        employee.setFirstName(employeeDetails.getFirstName());
        employee.setLastName(employeeDetails.getLastName());
        employee.setBirthDate(employeeDetails.getBirthDate());
        employee.setHireDate(employeeDetails.getHireDate());
        employee.setPosition(employeeDetails.getPosition());
        return employeeRepository.save(employee);
    }

    public void deleteEmployee(Integer id) {
        employeeRepository.deleteById(id);
    }
}

reponsitory

package com.et.reponsitory;

import com.et.entity.Employee;
import org.springframework.data.jpa.repository.JpaRepository;

public interface EmployeeRepository extends JpaRepository<Employee, Integer> {
}

application.properties

server.port=8088
spring.datasource.url=jdbc:sqlserver://127.0.0.1:1433;databaseName=SampleDB
spring.datasource.username=sa
spring.datasource.password=Y.sa123456
spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true

以上只是一些關(guān)鍵代碼,所有代碼請(qǐng)參見下面代碼倉(cāng)庫(kù)

代碼倉(cāng)庫(kù)

4.測(cè)試

啟動(dòng)Spring Boot應(yīng)用

新增

查詢列表

以上就是Spring Boot集成SQL Server的詳細(xì)指南的詳細(xì)內(nèi)容,更多關(guān)于Spring Boot集成SQL Server的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot自定義bean綁定實(shí)現(xiàn)

    SpringBoot自定義bean綁定實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot自定義bean綁定,最常見的配置綁定的場(chǎng)景,是在自定義的bean中通過@Value注解將某個(gè)屬性和對(duì)應(yīng)的配置綁定
    2022-10-10
  • Java線程池由淺入深掌握到精通

    Java線程池由淺入深掌握到精通

    什么是線程池?很簡(jiǎn)單,簡(jiǎn)單看名字就知道是裝有線程的池子,我們可以把要執(zhí)行的多線程交給線程池來處理,和連接池的概念一樣,通過維護(hù)一定數(shù)量的線程池來達(dá)到多個(gè)線程的復(fù)用
    2021-09-09
  • SpringBoot如何進(jìn)行參數(shù)校驗(yàn)實(shí)例詳解

    SpringBoot如何進(jìn)行參數(shù)校驗(yàn)實(shí)例詳解

    開發(fā)過程中,后臺(tái)的參數(shù)校驗(yàn)是必不可少的,下面這篇文章主要給大家介紹了關(guān)于SpringBoot如何進(jìn)行參數(shù)校驗(yàn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • 詳解Java中的final關(guān)鍵字

    詳解Java中的final關(guān)鍵字

    這篇文章主要給大家介紹了關(guān)于Java中final關(guān)鍵字的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Springboot啟動(dòng)報(bào)錯(cuò)時(shí)實(shí)現(xiàn)異常定位

    Springboot啟動(dòng)報(bào)錯(cuò)時(shí)實(shí)現(xiàn)異常定位

    這篇文章主要介紹了Springboot啟動(dòng)報(bào)錯(cuò)時(shí)實(shí)現(xiàn)異常定位,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • java?http請(qǐng)求獲取圖片并返回文件流給前端的方法步驟

    java?http請(qǐng)求獲取圖片并返回文件流給前端的方法步驟

    作為一名Java后端開發(fā)者,掌握如何從后端返回文件流至前端是基本技能之一,這篇文章主要介紹了java?http請(qǐng)求獲取圖片并返回文件流給前端的方法步驟,需要的朋友可以參考下
    2024-09-09
  • 基于Java實(shí)現(xiàn)數(shù)九天精準(zhǔn)計(jì)算的完整方案

    基于Java實(shí)現(xiàn)數(shù)九天精準(zhǔn)計(jì)算的完整方案

    在中國(guó)傳統(tǒng)歷法體系中,二十四節(jié)氣不僅是農(nóng)耕文明的智慧結(jié)晶,也是傳統(tǒng)文化數(shù)字化傳承的重要載體,其精準(zhǔn)計(jì)算是數(shù)九天推演的基礎(chǔ),本文將從工程實(shí)現(xiàn)角度,深度解析基于 Java 語言結(jié)合 tyme 歷法庫(kù)實(shí)現(xiàn)冬至日期計(jì)算、數(shù)九天周期推演的完整方案,需要的朋友可以參考下
    2026-02-02
  • springboot攔截器Interceptor的使用,你都了解嗎

    springboot攔截器Interceptor的使用,你都了解嗎

    springmvc 中的攔截器可以對(duì)請(qǐng)求進(jìn)行判別,在請(qǐng)求到達(dá)控制器之前,把非法的請(qǐng)求給攔截掉下面來說一說, 它在springboot中的使用,感興趣的朋友一起看看吧
    2021-07-07
  • Java Bigdecimal使用原理詳解

    Java Bigdecimal使用原理詳解

    這篇文章主要介紹了Java Bigdecimal使用原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • spring-cloud入門之eureka-server(服務(wù)發(fā)現(xiàn))

    spring-cloud入門之eureka-server(服務(wù)發(fā)現(xiàn))

    本篇文章主要介紹了spring-cloud入門之eureka-server(服務(wù)發(fā)現(xiàn)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01

最新評(píng)論

富蕴县| 电白县| 麻江县| 东明县| 布尔津县| 尚义县| 门源| 山东省| 高台县| 景东| 左权县| 沁阳市| 自治县| 股票| 定襄县| 古蔺县| 泸溪县| 五大连池市| 米易县| 淮北市| 双城市| 娄底市| 万荣县| 延寿县| 沙坪坝区| 南丹县| 天峨县| 安国市| 沙田区| 西昌市| 苍山县| 中阳县| 阿图什市| 南京市| 策勒县| 东辽县| 金塔县| 襄汾县| 木兰县| 岱山县| 旬邑县|