📁 "后端" 分类下的文章
-
C# 快速入门指南
📅 2025-09-13 | 📝 2 分钟阅读
C# 快速入门指南
先了解 C# 语言
C#(读作 “C Sharp”)是由微软开发的一种现代、类型安全、面向对象的编程语言,最初发布于 2000 年,运行在 .NET 平台上。
它融合了 C++ 的强大性能与 Java 的简洁语法,并不断进化,支持:
- 面向对象编程(OOP)
- 异步编程(async/await)
- 函数式特性(LINQ、Lambda)
- 跨平台开发(.NET 5+ 支持 Windows、Linux、macOS)
- Web(ASP.NET Core)、桌面(WPF、WinForms)、移动(MAUI)、游戏(Unity)等多领域开发
C# 语法清晰、工具强大(Visual Studio / VS Code)、生态丰富,是企业级开发和现代应用的首选语言之一。
无论你是想开发 Web API、后台服务,还是桌面程序,C# 都是一个高效且可靠的 choice。
一个完整的 C# 控制台应用
using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading.Tasks; // 主程序入口(.NET 6+ 单文件模式) await Main(); async Task Main() { Console.WriteLine("=== 欢迎使用 C# 快速入门示例 ===\n"); // 1. 基础变量与字符串插值 string name = "Alice"; int age = 25; bool isDeveloper = true; Console.WriteLine($"姓名: {name}, 年龄: {age}, 开发者: {isDeveloper}"); // 2. 条件判断 if (age >= 18) Console.WriteLine("✅ 成年人"); else Console.WriteLine("⚠️ 未成年人"); // 3. 循环遍历 List<string> hobbies = new() { "编程", "阅读", "跑步" }; Console.WriteLine("\n兴趣爱好:"); for (int i = 0; i < hobbies.Count; i++) { Console.WriteLine($" {i + 1}. {hobbies[i]}"); } // 4. 使用 LINQ 查询(函数式风格) var longHobbies = hobbies.Where(h => h.Length > 2).ToList(); Console.WriteLine("\n长度大于2的兴趣:"); longHobbies.ForEach(h => Console.WriteLine($" • {h}")); // 5. 定义并使用类(面向对象) var person = new Person("Bob", 30); person.Greet(); // 6. 异步获取网络数据(模拟 API 调用) Console.WriteLine("\n正在获取数据..."); string data = await FetchDataAsync(); Console.WriteLine($"✅ 数据长度: {data.Length} 字符"); // 7. 自定义工具类:简易配置管理 var config = new ConfigHelper(); config.Set("AppVersion", "1.0.0"); config.Set("MaxRetries", "3"); string version = config.Get("AppVersion", "unknown"); int retries = config.Get("MaxRetries", 1); Console.WriteLine($"\n配置信息:"); Console.WriteLine($" 版本: {version}"); Console.WriteLine($" 最大重试次数: {retries}"); Console.WriteLine("\n=== 程序执行完成 ==="); } // 自定义类:表示一个人 public class Person { public string Name { get; set; } public int Age { get; set; } public Person(string name, int age) { Name = name; Age = age; } public void Greet() => Console.WriteLine($"👋 大家好,我是 {Name},今年 {Age} 岁。"); } // 自定义工具类:简易配置管理器 public class ConfigHelper { private readonly Dictionary<string, string> _values = new(); public void Set(string key, string value) => _values[key] = value; public string Get(string key, string defaultValue = "") => _values.GetValueOrDefault(key, defaultValue); public T Get<T>(string key, T defaultValue) { var value = _values.GetValueOrDefault(key, null); return value == null ? defaultValue : (T)Convert.ChangeType(value, typeof(T)); } } // 异步方法:从 HTTP 接口获取数据 public static async Task<string> FetchDataAsync() { using var client = new HttpClient(); client.Timeout = TimeSpan.FromSeconds(10); return await client.GetStringAsync("https://httpbin.org/json"); }
-
Java 面向对象指南
📅 2025-09-13 | 📝 1 分钟阅读
Java 面向对象指南
先了解 Java 与面向对象
Java 是一门纯面向对象的语言,程序通过“类”和“对象”建模现实世界。
OOP 四大特性:
- 封装:隐藏数据,用
private
+getter/setter
- 继承:子类复用父类属性和方法(
extends
) - 多态:同一方法不同行为(方法重写)
- 抽象:定义通用结构(
abstract
)
掌握 OOP,就掌握了 Java 的核心思维。
一个学生管理系统
// 抽象类:人(体现“抽象”和“封装”) abstract class Person { protected String name; public Person(String name) { this.name = name; } // 抽象方法 public abstract void study(); } // 子类:学生(体现“继承”和“多态”) class Student extends Person { private int grade; public Student(String name, int grade) { super(name); this.grade = grade; } // 重写抽象方法(体现“多态”) @Override public void study() { System.out.println(name + " 正在学习,年级:" + grade); } // Getter(体现“封装”) public int getGrade() { return grade; } } // 主程序 public class StudentDemo { public static void main(String[] args) { // 创建学生对象 Student s1 = new Student("小明", 3); Student s2 = new Student("小红", 4); // 调用方法(多态) s1.study(); // 输出:小明 正在学习,年级:3 s2.study(); // 输出:小红 正在学习,年级:4 // 简单管理 System.out.println("\n📋 学生列表:"); Student[] students = {s1, s2}; for (Student s : students) { System.out.println("学生: " + s.name + ", 年级: " + s.getGrade()); } } }
- 封装:隐藏数据,用
-
MyBatis-Plus
📅 2025-09-13 | 📝 1 分钟阅读
MyBatis-Plus
一、什么是 MyBatis-Plus?
MyBatis-Plus(简称 MP)是 MyBatis 的增强工具,在 不改变 MyBatis 原有功能的基础上,提供了大量“开箱即用”的便捷功能,极大地简化了单表 CRUD 操作,提升开发效率。
它被广泛应用于 Spring Boot 项目中,号称:“只为简化开发,提高效率而生”。
✅ 核心特性
特性 说明 无侵入 只做增强不做改变,引入不影响原有流程 强大的 CRUD 操作 内置通用 Mapper 和 Service,无需写 SQL 即可操作数据库 Lambda 查询 支持链式调用 + Lambda 表达式,类型安全,避免字段名拼写错误 代码生成器 可根据数据库表自动生成 Entity、Mapper、Service 等代码 分页插件 内置高性能分页插件,支持多种数据库 性能分析插件 输出 SQL 执行时间,辅助优化慢查询
二、快速集成(Spring Boot 项目)
1. 添加依赖(Maven)
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.5</version> </dependency> <!-- 数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
-
MySQL CRUD 快速指南
📅 2025-09-13 | 📝 1 分钟阅读
MySQL CRUD 快速指南
一个完整的 MySQL 增删改查(CRUD)示例,包含建表、插入、查询、更新、删除操作,一步到位。
完整 CRUD 示例
-- 1. 创建表 CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE, age INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 2. 插入数据(Create) INSERT INTO users (name, email, age) VALUES ('Alice', 'alice@example.com', 25), ('Bob', 'bob@example.com', 30), ('Charlie', 'charlie@example.com', 35); -- 3. 查询数据(Read) SELECT * FROM users; -- 结果:返回所有用户 SELECT name, age FROM users WHERE age > 28; -- 结果:Bob, Charlie -- 4. 更新数据(Update) UPDATE users SET age = 26 WHERE name = 'Alice'; -- 5. 删除数据(Delete) DELETE FROM users WHERE name = 'Charlie'; -- 6. 再次查询验证结果 SELECT * FROM users; -- 结果:仅剩 Alice (26岁), Bob (30岁)
-
Redis 快速入门指南
📅 2025-09-13 | 📝 1 分钟阅读
Redis 快速入门指南
一个完整的 Redis 实战示例:用一组连贯命令演示如何使用 Redis 存储用户信息、记录行为、实现缓存与排行榜,掌握核心操作。
完整合集:用户系统实战
# 1. 存储用户基本信息(Hash - 类似对象) HSET user:1001 name "Alice" email "alice@example.com" age 25 HSET user:1002 name "Bob" email "bob@example.com" age 30 # 2. 记录用户登录次数(String - 计数器) INCR login_count:1001 # 第1次 INCR login_count:1001 # 第2次 GET login_count:1001 # 输出: "2" # 3. 保存用户最近浏览记录(List - 最新N条) LPUSH recent_views:1001 "article:45" LPUSH recent_views:1001 "article:67" LPUSH recent_views:1001 "article:89" LRANGE recent_views:1001 0 2 # 查看最近3条 # 4. 存储用户兴趣标签(Set - 去重) SADD tags:1001 "redis" "backend" "tutorial" SADD tags:1001 "docker" # 自动去重 SMEMBERS tags:1001 # 查看所有标签 # 5. 排行榜:用户积分排名(Sorted Set - 带分数排序) ZADD leaderboard 85 "Alice" ZADD leaderboard 92 "Bob" ZADD leaderboard 78 "Charlie" ZRANGE leaderboard 0 -1 WITHSCORES # 按分数升序 # 输出: Charlie 78, Alice 85, Bob 92 # 6. 缓存用户资料(String + EX 过期) SET cached_profile:1001 '{"name":"Alice","age":25,"tags":["redis","backend"]}' EX 3600 GET cached_profile:1001 # 7. 限流:限制用户每分钟最多操作5次 INCR rate_limit:1001 EXPIRE rate_limit:1001 60 # 第一次设置过期 GET rate_limit:1001 # 检查次数(如返回 3) # 8. 删除数据(模拟用户注销) DEL user:1001 DEL login_count:1001 DEL recent_views:1001