init
Change-Id: I42ce9491614d73adf28295781b319809d1969b82
diff --git a/src/main/java/com/example/g8backend/G8BackendApplication.java b/src/main/java/com/example/g8backend/G8BackendApplication.java
new file mode 100644
index 0000000..f94569a
--- /dev/null
+++ b/src/main/java/com/example/g8backend/G8BackendApplication.java
@@ -0,0 +1,13 @@
+package com.example.g8backend;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class G8BackendApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(G8BackendApplication.class, args);
+ }
+
+}
diff --git a/src/main/java/com/example/g8backend/config/MyBatisPlusConfig.java b/src/main/java/com/example/g8backend/config/MyBatisPlusConfig.java
new file mode 100644
index 0000000..07281de
--- /dev/null
+++ b/src/main/java/com/example/g8backend/config/MyBatisPlusConfig.java
@@ -0,0 +1,9 @@
+package com.example.g8backend.config;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@MapperScan("com.example.g8backend.mapper") // 扫描 Mapper 接口
+public class MyBatisPlusConfig {
+}
diff --git a/src/main/java/com/example/g8backend/controller/UserController.java b/src/main/java/com/example/g8backend/controller/UserController.java
new file mode 100644
index 0000000..0bbcdc6
--- /dev/null
+++ b/src/main/java/com/example/g8backend/controller/UserController.java
@@ -0,0 +1,54 @@
+package com.example.g8backend.controller;
+
+import com.example.g8backend.entity.User;
+import com.example.g8backend.service.IUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/users")
+public class UserController {
+
+ @Autowired
+ private IUserService userService;
+
+ // 获取所有用户
+ @GetMapping
+ public List<User> getUsers() {
+ return userService.list();
+ }
+
+ // 通过ID获取用户
+ @GetMapping("/{id}")
+ public User getUserById(@PathVariable Long id) {
+ return userService.getById(id);
+ }
+
+ // 通过用户名获取用户
+ @GetMapping("/name/{name}")
+ public User getUserByName(@PathVariable String name) {
+ return userService.getUserByName(name);
+ }
+
+ // 添加用户
+ @PostMapping
+ public boolean addUser(@RequestBody User user) {
+ System.out.println(user);
+ return userService.save(user);
+ }
+
+ // 修改用户
+ @PutMapping
+ public boolean updateUser(@RequestBody User user) {
+ return userService.updateById(user);
+ }
+
+ // 删除用户
+ @DeleteMapping("/{id}")
+ public boolean deleteUser(@PathVariable Long id) {
+ return userService.removeById(id);
+ }
+}
+
diff --git a/src/main/java/com/example/g8backend/entity/User.java b/src/main/java/com/example/g8backend/entity/User.java
new file mode 100644
index 0000000..f367a4b
--- /dev/null
+++ b/src/main/java/com/example/g8backend/entity/User.java
@@ -0,0 +1,29 @@
+package com.example.g8backend.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("user") // 指定数据库表名
+public class User {
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ @TableField
+ private String name;
+
+ @TableField
+ private String email;
+
+ @Override
+ public String toString() {
+ return "User{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ ", email='" + email + '\'' +
+ '}';
+ }
+}
diff --git a/src/main/java/com/example/g8backend/mapper/UserMapper.java b/src/main/java/com/example/g8backend/mapper/UserMapper.java
new file mode 100644
index 0000000..65369cd
--- /dev/null
+++ b/src/main/java/com/example/g8backend/mapper/UserMapper.java
@@ -0,0 +1,11 @@
+package com.example.g8backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.g8backend.entity.User;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface UserMapper extends BaseMapper<User> {
+ User getUserByName(@Param("name") String name);
+}
diff --git a/src/main/java/com/example/g8backend/service/IUserService.java b/src/main/java/com/example/g8backend/service/IUserService.java
new file mode 100644
index 0000000..98b2810
--- /dev/null
+++ b/src/main/java/com/example/g8backend/service/IUserService.java
@@ -0,0 +1,9 @@
+package com.example.g8backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.example.g8backend.entity.User;
+import org.apache.ibatis.annotations.Param;
+
+public interface IUserService extends IService<User> {
+ User getUserByName(@Param("name") String name);
+}
diff --git a/src/main/java/com/example/g8backend/service/UserServiceImpl.java b/src/main/java/com/example/g8backend/service/UserServiceImpl.java
new file mode 100644
index 0000000..2347878
--- /dev/null
+++ b/src/main/java/com/example/g8backend/service/UserServiceImpl.java
@@ -0,0 +1,18 @@
+package com.example.g8backend.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.g8backend.entity.User;
+import com.example.g8backend.mapper.UserMapper;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
+ @Resource
+ private UserMapper userMapper; // 手动注入 UserMapper
+
+ @Override
+ public User getUserByName(String name) {
+ return userMapper.getUserByName(name); // 调用 UserMapper 的自定义 SQL
+ }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
new file mode 100644
index 0000000..e912ce2
--- /dev/null
+++ b/src/main/resources/application.properties
@@ -0,0 +1,6 @@
+spring.datasource.password=050301
+spring.datasource.username=root
+spring.datasource.url=jdbc:mysql://localhost:3306/g8backend
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+
+mybatis-plus.mapper-locations=classpath*:/mapper/**/*.xml
\ No newline at end of file
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
new file mode 100644
index 0000000..e8ffb26
--- /dev/null
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.example.g8backend.mapper.UserMapper">
+ <select id="getUserByName" resultType="com.example.g8backend.entity.User">
+ SELECT * FROM user WHERE name = #{name}
+ </select>
+</mapper>
\ No newline at end of file