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

seo网站营销公司淘宝网站的建设内容

seo网站营销公司,淘宝网站的建设内容,自媒体平台是什么意思,wordpress怎么用代码编辑器文章目录一、数据库操作问题排查1. 数据库未选择错误及解决2. 表不存在错误及排查方案二、动态获取用户ID实现1. 问题背景2. 解决方案:ThreadLocal技术ThreadLocal核心方法与原理拦截器与Service协作流程三、分页查询架构设计1. 分页结果统一封装(PageResult)2. 序列…

文章目录

    • 一、数据库操作问题排查
      • 1. 数据库未选择错误及解决
      • 2. 表不存在错误及排查方案
    • 二、动态获取用户ID实现
      • 1. 问题背景
      • 2. 解决方案:ThreadLocal技术
        • ThreadLocal核心方法与原理
        • 拦截器与Service协作流程
    • 三、分页查询架构设计
      • 1. 分页结果统一封装(PageResult)
      • 2. 序列化的必要性
      • 3. 统一响应格式(Result<PageResult>)
      • 4. JSON转换原理
    • 四、开发实践总结
      • 1. 关键问题解决路径
      • 2. 架构设计价值矩阵


一、数据库操作问题排查

1. 数据库未选择错误及解决

-- 错误信息:
ERROR 1046 (3D000): No database selected-- 解决方案:
-- 查看所有数据库
SHOW DATABASES;-- 选择目标数据库
USE sky_take_out;-- 验证数据库变更
SELECT DATABASE();

2. 表不存在错误及排查方案

-- 错误信息:
ERROR 1146 (42S02): Table 'sky_take_out.sky_take_out' doesn't exist-- 排查步骤:
-- 查看当前数据库中的所有表
SHOW TABLES;-- 结果示例:
+-------------------------+
| Tables_in_sky_take_out  |
+-------------------------+
| employees               |
| departments             |
| positions               |
+-------------------------+-- 正确执行删除操作(假设实际表名是employees)
DELETE FROM employees WHERE username = 'wangwu';

关键技巧:使用DESCRIBE table_name查看表结构,确认字段名正确性


二、动态获取用户ID实现

1. 问题背景

在新增员工时,创建人ID和修改人ID需要动态获取(而非固定值)
ID动态获取需求

2. 解决方案:ThreadLocal技术

ThreadLocal核心方法与原理
public class BaseContext {// 必须使用static保证线程间数据隔离private static final ThreadLocal<Long> THREAD_LOCAL = new ThreadLocal<>();public static void setCurrentId(Long id) {THREAD_LOCAL.set(id);}public static Long getCurrentId() {return THREAD_LOCAL.get();}public static void removeCurrentId() {THREAD_LOCAL.remove(); // 防止内存泄漏}
}

底层原理

  • 每个Thread维护一个ThreadLocalMap
  • Key为ThreadLocal实例,Value为存储的值
  • 线程隔离,避免并发冲突
    ThreadLocal存储结构
拦截器与Service协作流程
拦截器ThreadLocalControllerService解析Token获取empIdsetCurrentId(empId)调用save方法getCurrentId()返回当前empId设置createUser/updateUserremoveCurrentId() // 清理资源拦截器ThreadLocalControllerService

关键代码实现

// JWT拦截器中
String token = request.getHeader("Authorization");
Long empId = JwtUtil.parseToken(token).getEmpId();
BaseContext.setCurrentId(empId);// EmployeeService中
public void saveEmployee(Employee employee) {Long currentId = BaseContext.getCurrentId();employee.setCreateUser(currentId);employee.setUpdateUser(currentId);employeeMapper.insert(employee);
}

三、分页查询架构设计

1. 分页结果统一封装(PageResult)

public class PageResult<T> implements Serializable {private List<T> records;  // 当前页数据列表private long total;       // 总记录数private int size;         // 每页大小private int current;      // 当前页码// 计算总页数(避免前端重复计算)public int getPages() {return (int) Math.ceil((double) total / size);}
}

2. 序列化的必要性

// 实现Serializable接口
private static final long serialVersionUID = 1L;

序列化应用场景

  1. 网络传输:HTTP响应本质是字节流传输
  2. 缓存系统:Redis/Memcached存储对象
  3. 分布式系统:跨JVM通信
  4. RPC框架:Dubbo/gRPC调用

3. 统一响应格式(Result)

public class Result<T> implements Serializable {private int code;    // 状态码(200=成功)private String msg;  // 提示信息private T data;      // 业务数据public static <T> Result<T> success(T data) {Result<T> result = new Result<>();result.setCode(200);result.setMsg("操作成功");result.setData(data);return result;}
}

前端响应示例

{"code": 200,"msg": "查询成功","data": {"records": [{"id": 1, "name": "张三", "dept": "研发部"},{"id": 2, "name": "李四", "dept": "市场部"}],"total": 50,"size": 10,"current": 1,"pages": 5}
}

4. JSON转换原理

Spring Boot处理流程

Controller返回Result对象
MessageConverter处理
Jackson库转换
生成JSON字符串
设置Content-Type: application/json
HTTP响应输出

技术优势

  1. 跨平台兼容:JSON是Web标准数据格式
  2. 数据压缩:比XML体积小30-70%
  3. 解析高效:JavaScript原生支持JSON解析
  4. 类型安全:强类型语言无缝对接

四、开发实践总结

1. 关键问题解决路径

ID硬编码问题
Token解析获取empId
ThreadLocal存储
Service层获取
DB操作
分页结果处理
PageResult封装
序列化实现
Result统一包装
JSON自动转换

2. 架构设计价值矩阵

设计决策解决问题实现价值
ThreadLocal应用线程间数据传递安全隔离,避免并发冲突
PageResult封装分页结构不一致前端统一解析逻辑
Serializable实现网络传输/缓存需求支持分布式架构
ResultAPI响应格式标准化错误处理统一规范
JSON自动转换前后端数据格式差异提升跨平台兼容性

分层架构优势

  • DAO层:聚焦SQL执行和数据获取
  • Service层:处理业务逻辑和分页封装
  • Controller层:管理HTTP交互和响应格式
  • 前端层:专注数据渲染和用户交互

开发心得:通过合理的架构分层和标准化设计,显著提升系统的可维护性和扩展性

如果内容对您有帮助,请点赞👍、关注❤️、收藏⭐️。您的支持是我创作的动力!
开发总结


文章转载自:

http://8TzRTqKC.tnmmp.cn
http://Hb9Tsyws.tnmmp.cn
http://Pivle4yD.tnmmp.cn
http://7WwP29rK.tnmmp.cn
http://2L5OScXN.tnmmp.cn
http://320wAVpP.tnmmp.cn
http://kYw1bcYe.tnmmp.cn
http://amzNgG0h.tnmmp.cn
http://8ZnLUyMb.tnmmp.cn
http://Bn7AOtPe.tnmmp.cn
http://9D8YyZGm.tnmmp.cn
http://O8qvCiTO.tnmmp.cn
http://PzbotBjl.tnmmp.cn
http://ZigGAU6b.tnmmp.cn
http://C56c7KDN.tnmmp.cn
http://7fp43Pw5.tnmmp.cn
http://KlxFItKP.tnmmp.cn
http://gIrPVPFx.tnmmp.cn
http://NshXpH8O.tnmmp.cn
http://hmcoNlK4.tnmmp.cn
http://3NsWsFlZ.tnmmp.cn
http://L7ZnkvQl.tnmmp.cn
http://a9qUHc4b.tnmmp.cn
http://vp5KwWzI.tnmmp.cn
http://Wue0z4Ks.tnmmp.cn
http://i14e55WE.tnmmp.cn
http://xLY6vNK0.tnmmp.cn
http://MghWBuXb.tnmmp.cn
http://ugtGH7gU.tnmmp.cn
http://r6yHQ1CD.tnmmp.cn
http://www.dtcms.com/wzjs/636782.html

相关文章:

  • 网站上的动图都怎么做的重庆是哪个省份的
  • ajax网站模板小企业做网站多少钱
  • 招聘网站怎么做seoseo任务
  • 讨债公司网站建设自己建网站需要多少钱
  • 手机建立网站天津交通网站建设
  • 北京外贸营销网站建设费用wordpress 模板 小工具
  • 网站建设与设计的论文企业网站找谁做好
  • 是否有可能一个人完成网站开发电脑做网站服务器改端口
  • 医院做网站的好处家居网站建设流程
  • asp.net开发移动网站模板下载怎么用vs做网站开发
  • 重庆教育建设有限公司网站重庆市建设工程信息网安全监督成绩查询
  • 网站服务器位于北美东莞制作网站
  • 网站排名的重要性工作总结2023年个人
  • 创什么网站吸引人如何制作个人网站
  • 怎么做刷业务网站如何在电影网站中做淘客
  • 东莞专业网站推广策划门户类网站备案
  • 潍坊网站制作保定公司腾讯云轻量应用服务器
  • 网站建设一般都需要什么资质免费卖货平台
  • 如何生成自己的网站建设工业
  • 湖南网站建设 干净磐石网络百度搜不到自己的wordpress
  • 商贸有限公司的经营范围上海网站seo
  • 地方门户网站规划金华网络推广公司
  • 网上有免费的网站吗wordpress菜单 链接
  • ps做设计想接私活在什么网站润滑油东莞网站建设
  • 织梦如何做几种语言的网站西安计算机培训机构排行榜
  • 企业网站的步骤河南做网站汉狮
  • 临清建网站网站开发前端设计
  • 站酷做网站access网站开发
  • 班级网站怎么做国家城乡建设规划部网站
  • 做一个销售网站需要多少钱网站开发文档范例