我遵循了一个使用spring-boot构建项目的教程。然而,我不是专业或中级的春季靴。所以我不明白我的项目什么时候出现了问题。我试图找到解决办法,但没能成功。
我在这里附上了我的代码:
SmartContactManager应用程序.java
package com.smart;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }, scanBasePackages={"com.smart.*"})
@ComponentScan("com.smart.dao.UserRepository")
public class SmartContactManagerApplication {
public static void main(String[] args) {
SpringApplication.run(SmartContactManagerApplication.class, args);
}
}
用户.java
package com.smart.entities;
import java.util.ArrayList;
import java.util.List;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import lombok.Data;
//@Data
@Entity
@Table(name="User")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
@Column(unique = true)
private String email;
private String password;
private String role;
private boolean enable;
private String imageUrl;
@Column(length = 500)
private String about;
//one user can have many contacts
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy="user")
private List<Contact> contactList = new ArrayList<>();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
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;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public String getAbout() {
return about;
}
public void setAbout(String about) {
this.about = about;
}
public List<Contact> getContactList() {
return contactList;
}
public void setContactList(List<Contact> contactList) {
this.contactList = contactList;
}
}
用户存储库.java
package com.smart.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.smart.entities.User;
@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
}
家庭控制器.java
package com.smart.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.smart.dao.UserRepository;
import com.smart.entities.User;
@Controller
public class HomeController {
@Autowired
private UserRepository userRepository;
@GetMapping("/test")
@ResponseBody
public String test() {
User user = new User();
user.setName("Sanket Verma");
user.setEmail("Sanket@gmail.com");
System.out.println("Testing");
userRepository.save(user);
return "Working";
}
}
应用程序属性
spring.datasource.url=jdbc:mysql://localhost:3306/smartcontact?useSSL=false&useTimezone=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root@123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.jpa.generate-ddl=true
spring.jpa.properties.hibernate.hbm2ddl.auto=update
联系人.java
package com.smart.entities;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Data;
//@Data
@Entity
(name = "contact")
public class Contact {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int cId;
private String fname;
private String sname;
private String work;
private String email;
private String phone;
private String image;
@Column(length = 1000)
private String description;
public int getcId() {
return cId;
}
public void setcId(int cId) {
this.cId = cId;
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getWork() {
return work;
}
public void setWork(String work) {
this.work = work;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
//Many contacts can have to one user
@ManyToOne
private User user;
}
预期的输出应该是,当我们运行程序时,名称和电子邮件将保存在数据库中。