Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • c23096663/sports-league-application
  • c24058946/team-5-sports-league-application-xzc
  • c24020257/sports-league-application
3 results
Show changes
Commits on Source (5)
Showing
with 369 additions and 0 deletions
......@@ -31,6 +31,8 @@ dependencies {
implementation 'org.mariadb.jdbc:mariadb-java-client:2.1.2'
//
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'javax.persistence:javax.persistence-api:2.2'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
......
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
package uk.ac.cf.spring.demo.Usercenter.User;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface UserRepository extends JpaRepository<user, Long> {
@Override
List<user> findAll();
}
package uk.ac.cf.spring.demo.Usercenter.User;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Table;
public class user {
// 主键ID,自动生成
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// 用户的名字
@Column(name = "firstname", nullable = false)
private String firstName;
// 用户的姓氏
@Column(name = "lastname", nullable = false)
private String lastName;
// 用户的邮箱,唯一,不能为空
@Column(name = "email", nullable = false, unique = true)
private String email;
// 用户的密码,不能为空
@Column(name = "password", nullable = false)
private String password;
@jakarta.persistence.Column(nullable = false)
private String role = "USER"; // 默认设置为USER角色
// Getter 和 Setter 方法
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package uk.ac.cf.spring.demo.sports.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import uk.ac.cf.spring.demo.sports.user.User;
import uk.ac.cf.spring.demo.sports.user.UserDetail;
import uk.ac.cf.spring.demo.sports.user.UserDetailRepository;
import uk.ac.cf.spring.demo.sports.user.UserRepository;
@Controller
public class UserController {
@Autowired
private UserRepository userRepository;
@Autowired
private UserDetailRepository userDetailRepository;
// 显示注册表单
@GetMapping("/register")
public String showRegistrationForm(Model model) {
model.addAttribute("user", new User());
model.addAttribute("userDetail", new UserDetail());
return "register";
}
// 处理注册请求
@PostMapping("/register")
public String registerUser(@ModelAttribute User user, @ModelAttribute UserDetail userDetail, Model model) {
// 检查用户名是否已存在
if (userRepository.findByUsername(user.getUsername()) != null) {
model.addAttribute("error", "Username already exists");
return "register";
}
// 保存用户信息到User表
User savedUser = userRepository.save(user);
// 设置user_id为外键,保存UserDetail信息到user_details表
userDetail.setUser(savedUser);
userDetailRepository.save(userDetail);
return "redirect:/success"; // 注册成功后重定向到成功页面
}
// 注册成功页面
@GetMapping("/success")
public String registrationSuccess() {
return "success"; // 显示注册成功页面
}
}
package uk.ac.cf.spring.demo.sports.user;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import jakarta.persistence.*;
//@Entity
//public class User {
//
// @Id
// @GeneratedValue(strategy = GenerationType.IDENTITY)
// private Long id; // 自动递增ID
//
// private String username;
// private String forename;
// private String surname;
// private String email;
// private String password;
// private String role = "USER"; // 默认角色为 USER
//
// // Getters 和 Setters
//
//}
@Entity
@Table(name = "users") // 对应数据库中的用户表
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true) // 确保用户名唯一
private String username;
@Column(nullable = false)
private String password;
@Column(nullable = false)
private String role = "USER"; // 默认设置为USER角色
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL)
private UserDetail userDetail;
// Getters and Setters
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public UserDetail getUserDetail() {
return userDetail;
}
public void setUserDetail(UserDetail userDetail) {
this.userDetail = userDetail;
userDetail.setUser(this); // 双向关系同步
}
}
package uk.ac.cf.spring.demo.sports.user;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import jakarta.persistence.*;
//@Entity
//public class UserDetail {
//
// @Id
// @GeneratedValue(strategy = GenerationType.IDENTITY)
// private Long id; // 详情ID
//
// @ManyToOne
// private User user; // 外键,关联User表
//
// private String forename;
// private String surname;
// private String email;
//
// // Getters 和 Setters
//}
@Entity
@Table(name = "user_details") // 对应数据库中的用户详细信息表
public class UserDetail {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String forename;
private String surname;
private String email;
@OneToOne
@JoinColumn(name = "user_id", referencedColumnName = "id")
private User user;
// Getters and Setters
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getForename() {
return forename;
}
public void setForename(String forename) {
this.forename = forename;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
package uk.ac.cf.spring.demo.sports.user;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserDetailRepository extends JpaRepository<UserDetail, Long> {
}
package uk.ac.cf.spring.demo.sports.user;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
<?php
// 连接数据库
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 处理用户登录
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = $_POST['password'];
// 查询数据库中是否存在匹配的用户名和密码
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "Login successful!";
} else {
echo "Login failed. Invalid username or password.";
}
}
$conn->close();
?>
\ No newline at end of file
spring.datasource.url=jdbc:mariadb://localhost:3307/sys
spring.datasource.username=mariadb.sys
spring.datasource.password=19990726
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
\ No newline at end of file
......@@ -2,3 +2,4 @@ spring.application.name=demo
spring.datasource.url=jdbc:mariadb://localhost:3306/sports
spring.datasource.username=root
spring.datasource.password=comsc
spring.profiles.active=zyb
\ No newline at end of file