springboot学习

实体类
@Entity 注解表示这是个实体类
@Table(name = “category_”) 表示这个类对应的表名是 category_ ,注意有下划线哦
@Id 表明主键
@GeneratedValue(strategy = GenerationType.IDENTITY) 表明自增长方式
@Column(name = “id”) 表明对应的数据库字段名

@Entity
@XmlRootElement
@Table(name = "user")
public class User implements Serializable{
	private static final long serialVersionUID = 1L;
	
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;

@Column(name = "name",nullable = false)
private String name;

@Column(name="age", nullable = false)
private Integer age;

protected User() {  // JPA 的规范要求无参构造函数;设为 protected 防止直接使用 
}

public User(String name, Integer age) {
	this.name = name;
	this.age = age;
}

public Long getId() {
	return id;
}

public void setId(Long id) {
	this.id = id;
}

public String getName() {
	return name;
}

public void setName(String name) {
	this.name = name;
}

public Integer getAge() {
	return age;
}

public void setAge(Integer age) {
	this.age = age;
}

@Override
public String toString() {
    return String.format(
            "User[id=%d, name='%s', age='%d']",
            id, name, age);
}
}

UserRepository接口
UserRepository继承了CrudRepository<User, Long>,并且提供泛型<User, Long> 表示这个是针对user类的DAO,long表示主键是long类型。
CrudRepository这个父接口,就提供了CRUD, 分页等等一系列的查询了,直接拿来用,都不需要二次开发的了。

public interface UserRepository extends  CrudRepository<User, Long>{

}

controller类
使用Restful风格
其中PathVariable 映射 URL 绑定的占位符,CRUD的RequestMapping都修改为了/categories,以前用的注解叫做@RequestMapper,现在分别叫做 GetMapper, PutMapper, PostMapper 和 DeleteMapper 用于表示接受对应的Method

@RequestMapping("/users")
public class UserController {
	@Autowired UserRepository userRepository;

private List<User> getUserlist() {
	List<User> users =new ArrayList<>();
	for(User user : userRepository.findAll()){
		users.add(user);
	}
	return users;
}

@RequestMapping()
public ModelAndView list(Model model) {
	model.addAttribute("userList", getUserlist());
	model.addAttribute("title", "用户管理");
	return new ModelAndView("users/list", "userModel", model);
}

/**
 * 根据id查询用户
 * @param message
 * @return
 */
@GetMapping("{id}")
public ModelAndView view(@PathVariable("id") Long id, Model model) {
	User user = userRepository.findOne(id);
	model.addAttribute("user", user);
	model.addAttribute("title", "查看用户");
	return new ModelAndView("users/view", "userModel", model);
}

/**
 * 获取 form 表单页面
 * @param user
 * @return
 */
@GetMapping("/form")
public ModelAndView createForm(Model model) {
	model.addAttribute("user", new User(null, null));
	model.addAttribute("title", "创建用户");
	return new ModelAndView("users/form", "userModel", model);
}

/**
 * 新建用户
 * @param user
 * @param result
 * @param redirect
 * @return
 */
@PostMapping
public ModelAndView create(User user) {
	userRepository.save(user);
	return new ModelAndView("redirect:/users");
}

/**
 * 删除用户
 * @param id
 * @return
 */
@GetMapping(value = "delete/{id}")
public ModelAndView delete(@PathVariable("id") Long id, Model model) {
	userRepository.delete(id);
	model.addAttribute("userList", getUserlist());
	model.addAttribute("title", "删除用户");
	return new ModelAndView("users/list", "userModel", model);
}

/**
 * 修改用户
 * @param user
 * @return
 */
@GetMapping(value = "modify/{id}")
public ModelAndView modifyForm(@PathVariable("id") Long id, Model model) {
	User user = userRepository.findOne(id);
	model.addAttribute("user", user);
	model.addAttribute("title", "修改用户");
	return new ModelAndView("users/form", "userModel", model);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值