瀏覽代碼

1.实现用户登录功能;
2.引入若干第三方依赖;
3.使用MySQL数据库。

Yumin 6 年之前
父節點
當前提交
44c07ce24d

+ 14 - 0
pom.xml

@@ -44,6 +44,20 @@
             <scope>runtime</scope>
         </dependency>
 
+        <!-- Spring-data-jpa -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+            <version>1.5.7.RELEASE</version>
+        </dependency>
+
+        <!-- FastJSON -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.38</version>
+        </dependency>
+
         <!-- lombok -->
         <dependency>
             <groupId>org.projectlombok</groupId>

+ 15 - 0
src/main/java/cn/minbb/edu/controller/MainController.java

@@ -0,0 +1,15 @@
+package cn.minbb.edu.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping(value = "")
+public class MainController {
+
+    @RequestMapping(value = "/", method = RequestMethod.GET)
+    public String main() {
+        return "EDUServer";
+    }
+}

+ 48 - 0
src/main/java/cn/minbb/edu/controller/UserController.java

@@ -0,0 +1,48 @@
+package cn.minbb.edu.controller;
+
+import cn.minbb.edu.model.User;
+import cn.minbb.edu.service.UserService;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping(value = "/user")
+public class UserController {
+
+    @Autowired
+    UserService userService;
+
+    @RequestMapping(value = "/login", method = RequestMethod.POST)
+    public String login(
+            @RequestParam(value = "username") String username,
+            @RequestParam(value = "password") String password,
+            HttpServletRequest request) {
+        Map<String, Object> result = new HashMap<>();
+        User user = userService.findUserByUsername(username);
+        if (user == null) {
+            // 用户不存在
+            result.put("result", 404);
+            result.put("summary", "用户不存在");
+        } else {
+            if (password.equals(user.getPassword())) {
+                // OK
+                result.put("result", 200);
+                result.put("summary", "登录成功");
+                result.put("data", user);
+            } else {
+                // 密码错误
+                result.put("result", 404);
+                result.put("summary", "密码错误");
+            }
+        }
+        return JSONObject.toJSONString(result);
+    }
+}

+ 47 - 0
src/main/java/cn/minbb/edu/model/User.java

@@ -0,0 +1,47 @@
+package cn.minbb.edu.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "user")
+@NoArgsConstructor
+@AllArgsConstructor
+public class User {
+
+    @Getter
+    @Setter
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false, columnDefinition = "INT COMMENT '用户实体ID'")
+    private Integer id;
+
+    @Getter
+    @Setter
+    @Column(name = "username", nullable = false, columnDefinition = "VARCHAR(64) COMMENT '用户名'")
+    private String username;
+
+    @Getter
+    @Setter
+    @Column(name = "password", nullable = false, columnDefinition = "VARCHAR(64) COMMENT '密码'")
+    private String password;
+
+    @Getter
+    @Setter
+    @Column(name = "name", columnDefinition = "VARCHAR(64) COMMENT '姓名'")
+    private String name;
+
+    @Getter
+    @Setter
+    @Column(name = "avatar", columnDefinition = "VARCHAR(255) COMMENT '头像'")
+    private String avatar;
+
+    @Getter
+    @Setter
+    @Column(name = "school", columnDefinition = "VARCHAR(64) COMMENT '学校'")
+    private String school;
+}

+ 8 - 0
src/main/java/cn/minbb/edu/model/repository/UserRepository.java

@@ -0,0 +1,8 @@
+package cn.minbb.edu.model.repository;
+
+import cn.minbb.edu.model.User;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface UserRepository extends JpaRepository<User, Integer> {
+    User findUserByUsername(String username);
+}

+ 7 - 0
src/main/java/cn/minbb/edu/service/UserService.java

@@ -0,0 +1,7 @@
+package cn.minbb.edu.service;
+
+import cn.minbb.edu.model.User;
+
+public interface UserService {
+    User findUserByUsername(String username);
+}

+ 19 - 0
src/main/java/cn/minbb/edu/service/impl/UserServiceImpl.java

@@ -0,0 +1,19 @@
+package cn.minbb.edu.service.impl;
+
+import cn.minbb.edu.model.User;
+import cn.minbb.edu.model.repository.UserRepository;
+import cn.minbb.edu.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserServiceImpl implements UserService {
+
+    @Autowired
+    UserRepository userRepository;
+
+    @Override
+    public User findUserByUsername(String username) {
+        return userRepository.findUserByUsername(username);
+    }
+}

+ 10 - 0
src/main/resources/application.properties

@@ -0,0 +1,10 @@
+server.port=80
+server.servlet.context-path=/
+spring.datasource.url=jdbc:mysql://172.24.9.99:3306/edu?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
+spring.datasource.username=IEC
+spring.datasource.password=iec
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+spring.datasource.sql-script-encoding=UTF-8
+spring.jpa.show-sql=false
+spring.jpa.properties.hibernate.hbm2ddl.auto=update
+spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect