如何利用 Spring Boot 集成 JPA 与 SQL Server
2024-03-03 05:32:23
在 Spring Boot 中使用 JPA 与 SQL Server
引言
在本文中,我们将探讨如何利用 Spring Boot 框架和 SQL Server 数据库集成 JPA(Java 持久性 API)。我们将深入探讨配置、模型、DAO、服务以及示例代码,指导你成功实现 JPA。
先决条件
- Spring Boot 2.x 或更高版本
- SQL Server 数据库
- Java 开发环境(JDK 8 或更高版本)
配置
1. Maven 依赖项
首先,在你的 Maven 项目中添加必要的依赖项:
<dependency>
<groupId>com.hynnet</groupId>
<artifactId>sqljdbc-chs</artifactId>
<version>4.0.2206.100</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2. application.properties
接着,在 application.properties
文件中配置数据源和 JPA 设置:
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=quanlybanhang
spring.datasource.username=sa
spring.datasource.password=1
spring.jpa.hibernate.ddl-auto=create
spring.datasource.initialize=true
spring.jpa.database=SQL_SERVER
模型
Account.class
定义映射到数据库表 taikhoan
的 Account
模型类:
@Entity
@Table(name="taikhoan",uniqueConstraints=@UniqueConstraint(columnNames = { "tendangnhap" }) )
public class Account {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@NotNull
private String tendangnhap;
@NotNull
private String matkhau;
public Account(String tendangnhap, String matkhau) {
super();
this.tendangnhap = tendangnhap;
this.matkhau = matkhau;
}
public Account() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTendangnhap() {
return tendangnhap;
}
public void setTendangnhap(String tendangnhap) {
this.tendangnhap = tendangnhap;
}
public String getMatkhau() {
return matkhau;
}
public void setMatkhau(String matkhau) {
this.matkhau = matkhau;
}
}
DAO
AccountDAO
定义一个数据访问对象 (DAO) 接口,用于访问 Account
模型:
public interface AccountDAO extends JpaRepository<Account, Integer>{
}
服务
ServerAccount
定义一个服务类来处理业务逻辑:
@Service
public class ServerAccount {
@Autowired
AccountDAO server;
public void them(Account acc){
server.save(acc);
}
public List<Account> lietke(){
return server.findAll();
}
}
控制器
在控制器中调用 addAccount()
方法以添加帐户:
@Controller
public class Controller{
@Autowired
ServerAccount server;
@RequestMapping("/addAccount")
public String add(){
server.addAccount();
return "redirect:/";
}
}
常见问题解答
1. 如何解决 "java.lang.NoClassDefFoundError" 异常?
此异常表明缺少 Spring JPA 库。请确保在 Maven 依赖项中已添加 spring-boot-starter-data-jpa
依赖项。
2. 如何在 Spring Boot 中使用 SQL Server?
在 application.properties
文件中配置数据源信息,并使用 com.microsoft.sqlserver.jdbc.SQLServerDriver
作为 JDBC 驱动程序类名。
3. 如何创建 JPA 实体类?
使用 @Entity
注释声明一个 Java 类,并使用 @Table
注释指定与之关联的数据库表。
4. 什么是 JPA DAO?
JPA DAO 是一个接口,它扩展了 JpaRepository
,用于执行 CRUD(创建、读取、更新、删除)操作。
5. 如何在 Spring Boot 中注入服务?
使用 @Autowired
注释在控制器中注入服务,以便在你的代码中使用它们。
结论
通过遵循本文中的步骤,你将能够在 Spring Boot 项目中有效使用 JPA 和 SQL Server。本文提供了逐步指南、代码示例和常见问题解答,以帮助你实现 JPA。