当前位置: 首页 > news >正文

网站建设0基础学起青海企业网站开发定制

网站建设0基础学起,青海企业网站开发定制,卖环保设备做哪个网站好,广西五建公司官网一、引言 1. 项目背景与目标 在现代Web开发中#xff0c;CRUD#xff08;创建、读取、更新、删除#xff09;操作是几乎所有应用程序的核心功能。本项目旨在通过Spring Boot、MyBatis和MySQL技术栈#xff0c;快速搭建一个高效、简洁的CRUD应用。我们将从零开始#xff…一、引言 1. 项目背景与目标 在现代Web开发中CRUD创建、读取、更新、删除操作是几乎所有应用程序的核心功能。本项目旨在通过Spring Boot、MyBatis和MySQL技术栈快速搭建一个高效、简洁的CRUD应用。我们将从零开始逐步实现一个用户管理系统的增删改查功能。 2. 技术选型与适用场景 Spring Boot简化了基于Spring的应用开发提供了自动配置、嵌入式服务器等特性。MyBatis作为持久层框架支持自定义SQL、存储过程和高级映射灵活性高。MySQL广泛使用的开源关系型数据库性能稳定社区活跃。 二、开发环境准备 1. 开发工具与依赖安装 JDK确保已安装Java Development Kit建议版本8及以上。Maven/Gradle用于项目构建和依赖管理。IDE推荐使用IntelliJ IDEA或Eclipse。MySQL下载并安装MySQL数据库配置好数据库连接信息。 2. Spring Boot项目初始化 使用 Spring Initializr 创建项目 Project: Maven ProjectLanguage: JavaSpring Boot: 最新稳定版本Dependencies: Spring Web, MyBatis Framework, MySQL Driver 三、数据库设计与初始化 1. MySQL数据库表设计 创建一个简单的用户表user包含以下字段 CREATE TABLE user (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,password VARCHAR(100) NOT NULL,email VARCHAR(100),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );2. 数据初始化脚本 在src/main/resources目录下创建data.sql文件插入一些测试数据 INSERT INTO user (username, password, email) VALUES (admin, password123, adminexample.com), (user1, password123, user1example.com);配置application.yml中的数据库连接信息 spring:datasource:url: jdbc:mysql://localhost:3306/mydb?useSSLfalseserverTimezoneUTCusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver四、Spring Boot与MyBatis集成 1. MyBatis基础配置 在application.yml中添加MyBatis配置 mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.example.demo.entity2. 实体类与Mapper接口开发 实体类创建User类表示用户信息。 package com.example.demo.entity;public class User {private Integer id;private String username;private String password;private String email;private Timestamp createdAt;// Getters and Setters }Mapper接口创建UserMapper接口及对应的XML映射文件。 package com.example.demo.mapper;import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;Mapper public interface UserMapper {Select(SELECT * FROM user WHERE id #{id})User findById(Integer id); }在src/main/resources/mapper目录下创建UserMapper.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.mapper.UserMapperselect idfindById resultTypecom.example.demo.entity.UserSELECT * FROM user WHERE id #{id}/select /mapper3. Service层与Controller层实现 Service层封装业务逻辑。 package com.example.demo.service;import com.example.demo.entity.User; import com.example.demo.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class UserService {Autowiredprivate UserMapper userMapper;public User getUserById(Integer id) {return userMapper.findById(id);} }Controller层提供RESTful API接口。 package com.example.demo.controller;import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController;RestController public class UserController {Autowiredprivate UserService userService;GetMapping(/users/{id})public User getUser(PathVariable Integer id) {return userService.getUserById(id);} }五、CRUD功能实现 1. 创建Create功能 Mapper接口添加插入数据的方法。 Insert(INSERT INTO user (username, password, email) VALUES (#{username}, #{password}, #{email})) void insertUser(User user);Service层实现新增用户逻辑。 public void createUser(User user) {userMapper.insertUser(user); }Controller层提供新增用户的API接口。 PostMapping(/users) public void createUser(RequestBody User user) {userService.createUser(user); }2. 读取Read功能 分页查询使用MyBatis分页插件PageHelper。select idfindAllUsers resultTypecom.example.demo.entity.UserSELECT * FROM user /selectPageHelper.startPage(pageNum, pageSize);ListUser users userMapper.findAllUsers();PageInfoUser pageInfo new PageInfo(users);动态条件查询按用户名模糊搜索。select idfindUsersByUsername resultTypecom.example.demo.entity.UserSELECT * FROM user WHERE username LIKE CONCAT(%, #{username}, %) /select3. 更新Update功能 Mapper接口添加更新数据的方法。 Update(UPDATE user SET username#{username}, password#{password}, email#{email} WHERE id#{id}) void updateUser(User user);Service层实现更新用户逻辑。 public void updateUser(User user) {userMapper.updateUser(user); }Controller层提供更新用户的API接口。 PutMapping(/users/{id}) public void updateUser(PathVariable Integer id, RequestBody User user) {user.setId(id);userService.updateUser(user); }4. 删除Delete功能 硬删除直接从数据库中删除记录。 Delete(DELETE FROM user WHERE id#{id}) void deleteUserById(Integer id);软删除添加is_deleted字段标记删除状态。 ALTER TABLE user ADD COLUMN is_deleted TINYINT DEFAULT 0;Update(UPDATE user SET is_deleted1 WHERE id#{id})void softDeleteUserById(Integer id);六、功能扩展与优化 1. 事务管理 Transactional注解确保多个操作在同一事务中执行。Service Transactional public class UserService {// CRUD方法 }2. 分页与排序 PageHelper分页插件实现分页查询。 dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactIdversion1.4.0/version /dependency排序参数动态传入根据请求参数进行排序。 PageHelper.startPage(pageNum, pageSize).setOrderBy(orderBy);3. 异常处理 全局异常捕获使用ControllerAdvice处理全局异常。ControllerAdvice public class GlobalExceptionHandler {ExceptionHandler(Exception.class)public ResponseEntityString handleException(Exception e) {return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());} }七、测试与部署 1. 单元测试与集成测试 单元测试编写Mapper接口测试用例。 RunWith(SpringRunner.class) SpringBootTest public class UserMapperTest {Autowiredprivate UserMapper userMapper;Testpublic void testFindById() {User user userMapper.findById(1);assertNotNull(user);} }集成测试验证CRUD功能完整性。 RunWith(SpringRunner.class) SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.RANDOM_PORT) public class UserControllerIT {Autowiredprivate TestRestTemplate restTemplate;Testpublic void testGetUser() {ResponseEntityUser response restTemplate.getForEntity(/users/1, User.class);assertEquals(HttpStatus.OK, response.getStatusCode());} }2. 项目打包与部署 打包为可执行JAR文件 mvn clean package部署到本地Tomcat或云服务器 将生成的JAR文件上传至服务器并通过命令启动java -jar myapp.jar
http://www.w-s-a.com/news/158970/

相关文章:

  • 网站定制项目上海快速建站
  • 大型视频网站建设方案东莞企业网站建设开发
  • 西安php网站制作可以用AI做网站上的图吗
  • 网站开发工程师和前端企业网络推广公司
  • 泉州开发网站的公司有哪些电脑网页翻译
  • 河北省建设机械会网站首页刚做的网站怎么收录
  • 什么网站专门做自由行的framework7做网站
  • 网页设计与网站建设书籍包头住房与城乡建设局网站
  • 重庆网站建设平台免费猎头公司收费收费标准和方式
  • 形象设计公司网站建设方案书打开一个不良网站提示创建成功
  • 网站手机页面如何做网站关键字 优帮云
  • 免费的黄冈网站有哪些下载软件系统软件主要包括网页制作软件
  • 企业微站系统重庆高端网站建设价格
  • 有没有做衣服的网站吗网站自适应开发
  • 青海省制作网站专业专业定制网吧桌椅
  • 网站开发的项目17岁高清免费观看完整版
  • 手机网站建设多少钱一个门网站源码
  • 重庆 网站开发天津住房和城乡建设厅官方网站
  • 泰安高级网站建设推广厦门高端网站建设定制
  • jsp网站开发引用文献手机seo排名
  • 创建一家网站如何创设计网页的快捷网站
  • 1688代加工官方网站h5开发教程
  • 静态网站源码下载网站怎么显示备案号
  • 网站代码设计网站开发维护任职要求
  • 长寿做网站的电话怎么快速刷排名
  • 上海市中学生典型事例网站邯郸全网推广
  • 厦门网站建设680元好男人的最好的影院
  • 石家庄网站建设设计产品设计专业就业前景
  • 网站移动排名做最好最全的命理网站
  • 网站怎么防黑客杭州市做外贸网站的公司