SpringBoot集成SQL?Server的詳細(xì)指南
1.什么是SQL Server?
SQL Server是由Microsoft開發(fā)和推廣的以客戶/服務(wù)器(c/s)模式訪問、使用Transact-SQL語言的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,并于1988年推出了第一個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。 提供的主要功能:
- 支持存儲過程、觸發(fā)器、函數(shù)和視圖
- 本機(jī)支持關(guān)系數(shù)據(jù)、XML、FILESTREAM 和空間數(shù)據(jù),可存儲所有類型的業(yè)務(wù)數(shù)據(jù)
- 除與 SQL Server Reporting Services 中的 Microsoft 2007 Office System 集成外,還改進(jìn)了性能、可用性、可視化
- 通過利用現(xiàn)有的 T-SQL 技術(shù)、ADO.NET 實(shí)體框架和 LINQ 簡化開發(fā)工作
- 與 Visual Studio 和 Visual Web Developer 緊密集成
SQL Server 2019 更是使用統(tǒng)一的數(shù)據(jù)平臺實(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對SQL Server 數(shù)據(jù)庫CRUD 操作
Spring Boot對SQL Server 數(shù)據(jù)庫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)鍵代碼,所有代碼請參見下面代碼倉庫
代碼倉庫
- https://github.com/Harries/springboot-demo(SqlServer)
4.測試
啟動Spring Boot應(yīng)用
新增
查詢列表
以上就是Spring Boot集成SQL Server的詳細(xì)指南的詳細(xì)內(nèi)容,更多關(guān)于Spring Boot集成SQL Server的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JSP request.setAttribute()詳解及實(shí)例
這篇文章主要介紹了 javascript request.setAttribute()詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02Mybatis基于注解形式的sql語句生成實(shí)例代碼
這篇文章主要介紹了 Mybatis基于注解形式的sql語句生成實(shí)例代碼,需要的朋友可以參考下2017-09-09java使用EasyExcel實(shí)現(xiàn)Sheet的復(fù)制與填充
EasyExcel是一個非常有用的工具,它提供了強(qiáng)大的模板填充功能,可以輕松解決各種業(yè)務(wù)需求,本文主要為大家介紹了如何使用EasyExcel實(shí)現(xiàn)模板Sheet復(fù)制與填充,需要的可以參考下2023-10-10Java中volatile關(guān)鍵字實(shí)現(xiàn)原理
本文詳細(xì)解讀一下volatile關(guān)鍵字如何保證變量在多線程之間的可見性,對Java中volatile關(guān)鍵字實(shí)現(xiàn)原理感興趣的朋友一起通過本文學(xué)習(xí)吧2017-06-06淺談Java數(shù)據(jù)結(jié)構(gòu)之稀疏數(shù)組知識總結(jié)
今天帶大家了解一下Java稀疏數(shù)組的相關(guān)知識,文中有非常詳細(xì)的介紹及代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05