1. 构建项目
1.1 创建项目文件
可以使用 Spring Initializr 来快速生成项目的基础结构。选择以下依赖项:
- Spring Web
- Spring Data JPA
- Thymeleaf
- Spring Boot DevTools(可选,用于开发过程中的热部署)
1.2 配置文
在 src/main/resources/application.properties
或 application.yml
文件中配置数据库连接和其他属性。
spring.application.name=iot-manager-2024-9-24
spring.thymeleaf.cache=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/iot_devices?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=oyby123
logging.level.root=warn
logging.level.com.bdqn.iotmanager.mapper=trace
logging.pattern.console=%p%m%n
#??sql??
mybatis.config-location=classpath:mybatis-config.xml
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.bdqn.pojo
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#??????????????
spring.datasource.druid.initial-size=3
spring.datasource.druid.min-idle=3
spring.datasource.druid.max-active=10
#?????????????
spring.datasource.druid.max-wait=60000
#?????????
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=admin
#??StatFilter
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=2000
2. 模型开发
2.1 Entity
创建一个实体类,例如 User
package com.bdqn.webcrm.entity;
/**
* User
*
* @author
* @since
*/
public class User {
private Long usrId;
private String usrName;
private String usrPassword;
private Long usrRoleId;
private Integer usrFlag;
public User() {
}
public User(String usrName, String usrPassword, Long usrRoleId, Integer usrFlag) {
this.usrName = usrName;
this.usrPassword = usrPassword;
this.usrRoleId = usrRoleId;
this.usrFlag = usrFlag;
}
public Long getUsrId() {
return usrId;
}
public void setUsrId(Long usrId) {
this.usrId = usrId;
}
public String getUsrName() {
return usrName;
}
public void setUsrName(String usrName) {
this.usrName = usrName;
}
public String getUsrPassword() {
return usrPassword;
}
public void setUsrPassword(String usrPassword) {
this.usrPassword = usrPassword;
}
public Long getUsrRoleId() {
return usrRoleId;
}
public void setUsrRoleId(Long usrRoleId) {
this.usrRoleId = usrRoleId;
}
public Integer getUsrFlag() {
return usrFlag;
}
public void setUsrFlag(Integer usrFlag) {
this.usrFlag = usrFlag;
}
}
2.2 Repository
创建一个JPA仓库接口,用于数据库操作
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
// 继承JpaRepository后,基本的CRUD操作已经定义好
}
2.3 Service
创建一个服务层来处理业务逻辑
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public List<User> findAll() {
return userRepository.findAll();
}
}
列表
创建一个控制器来处理用户列表的显示
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public String listUsers(Model model) {
model.addAttribute("users", userService.findAll());
return "users"; // 对应Thymeleaf模板文件
}
}
3.4 新增
创建一个表单页面,并处理表单提交来新增用户。
3.5 修改
与新增类似,但通常需要首先根据ID查询用户,然后更新其属性。
3.6 删除
添加一个删除按钮和对应的控制器方法来处理删除请求。
结尾
以上是一个基于Spring Boot, JPA, 和 Thymeleaf 的CRUD Web 应用的基本框架。每个部分都可以进一步扩展和优化,以适应更复杂的需求。您还需要添加异常处理、数据验证、安全配置等。希望这个概述能帮助您开始构建自己的应用!