package com.yzh.jpa.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "user_table")
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class MyUser implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;//主键
private String uname;
private String usex;
private int age;
}
f>创建数据访问层UserRepository
package com.yzh.jpa.repository;
import java.util.List;
import com.yzh.jpa.entity.MyUser;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository{
public MyUser findByUname(String uname);
public List findByUnameLike(String uname);
}
g>创建业务层
package com.yzh.jpa.service;
import java.util.List;
import com.yzh.jpa.entity.MyUser;
public interface UserService {
public void saveAll();
public List findAll();
public MyUser findByUname(String uname);
public List findByUnameLike(String uname);
public MyUser getOne(int id);
}
package com.yzh.jpa.service;
import java.util.ArrayList;
import java.util.List;
import com.yzh.jpa.entity.MyUser;
import com.yzh.jpa.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class UserServiceImpl implements UserService{
@Autowired
private UserRepository userRepository;//依赖注入数据访问层
@Override
public void saveAll() {
MyUser mu1 = new MyUser();
mu1.setUname("叶子航");
mu1.setUsex("男");
mu1.setAge(20);
MyUser mu2 = new MyUser();
mu2.setUname("彭子健");
mu2.setUsex("男");
mu2.setAge(18);
MyUser mu3 = new MyUser();
mu3.setUname("单紫晨");
mu3.setUsex("男");
mu3.setAge(15);
List users = new ArrayList();
users.add(mu1);
users.add(mu2);
users.add(mu3);
//调用父接口中的方法saveAll
userRepository.saveAll(users);
}
@Override
public List findAll() {
//调用父接口中的方法findAll
return userRepository.findAll();
}
@Override
public MyUser findByUname(String uname) {
return userRepository.findByUname(uname);
}
@Override
public List findByUnameLike(String uname) {
return userRepository.findByUnameLike("%" + uname + "%");
}
@Override
public MyUser getOne(int id) {
//调用父接口中的方法getOne
return userRepository.getOne(id);
}
}
h>创建控制器类UserTestController
package com.yzh.jpa.controller;
import com.yzh.jpa.service.UserService;
import com.yzh.jpa.service.UserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class UserTestController {
@Autowired
private UserService userService;
@RequestMapping("/save")
@ResponseBody
public String save() {
userService.saveAll();
return "保存用户成功!";
}
@RequestMapping("/findByUname")
public String findByUname(String uname, Model model) {
model.addAttribute("title", "根据用户名查询一个用户");
model.addAttribute("auser", userService.findByUname(uname));
return "showAuser";
}
@RequestMapping("/getOne")
public String getOne(int id, Model model) {
model.addAttribute("title", "根据用户id查询一个用户");
model.addAttribute("auser",userService.getOne(id));
return "showAuser";
}
@RequestMapping("/findAll")
public String findAll(Model model){
model.addAttribute("title", "查询所有用户");
model.addAttribute("allUsers",userService.findAll());
return "showAll";
}
@RequestMapping("/findByUnameLike")
public String findByUnameLike(String uname, Model model){
model.addAttribute("title", "根据用户名模糊查询所有用户");
model.addAttribute("allUsers",userService.findByUnameLike(uname));
return "showAll";
}
}