一,添加依赖关系
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
二,构建目录结构
1.添加application.yml文件,配置数据源和jpa:
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
username: root
password: 123
driver-class-name: com.mysql.jdbc.Driver
jpa:
hibernate:
show-sql: true
ddl-auto: update
2.添加实体类User,代码如下:
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue
private Long id;
private String userName;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date date;
//Alt+Int添加get,set方法
3.创建JPA接口UserRepository
因为接口JpaRepository已经提供了一些增删改查的方法,所以直接继承这个接口就可以了,也可以另外自定义增删改查的方法
@Repository
public interface UserRepository extends JpaRepository<User,Long> {
}
4.业务层service
编写接口UserService
public interface UserService {
User addUser(User user);
User update(User user);
int delete(Long id);
User findUserById(Long id);
List<User> findUsers();
}
接口实现类UserServiceImp
@Component //允许自动注入
public class UserServiceImp implements UserService {
@Autowired
private UserRepository userRepository;
@Override
public User addUser(User user) {
return userRepository.save(user);
}
@Override
public User update(User user) {
return userRepository.saveAndFlush(user);
}
@Override
public int delete(Long id) {
userRepository.deleteById(id);
return 0;
}
@Override
public User findUserById(Long id) {
Optional<User> user= userRepository.findById(id);
if(user!=null)
return user.get();
return null;
}
@Override
public List<User> findUsers() {
return userRepository.findAll();
}
}
5.编写控制器UserController
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@RequestMapping( "/add/{name}")
public String addUser(@PathVariable String name){
User user=new User();
user.setUserName(name);
user.setDate(new Date());
return userService.addUser(user).toString();
}
@RequestMapping("/find/{id}")
public User findUser(@PathVariable Long id){
return userService.findUserById(id);
}
@RequestMapping("list")
public List<User> list(){
return userService.findUsers();
}
@RequestMapping("/update/{name}")
public String updateUser(User user){
return userService.update(user).toString();
}
}
三,测试项目
运行项目,添加用户信息,输入请求地址:http://localhost:8080/user/add/小明,得到结果:
查看数据库表
查看用户信息,请求地址:http://localhost:8080/user/find/1