从个人开发角度来说,Spring Data JPA更好用,是因为开发起来更快。
但从团队角度,我们希望更好的维护性,spring data jpa就差一些,或者说对后期人的要求更高。mybatis更好一些
1.创建module
2.添加数据源, 新建 jpa 数据库
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/jpa?serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver
#jpa相关配置
jpa:
hibernate:
#会根据映射实体类自动创建或更新数据表
ddl-auto: update
#控制台打印sql语句
show-sql: true
3.创建实体类 entity/User
package com.cc.springboot.entity;
import javax.persistence.*;
//jpa采用的是orm(对象关系映射)模型
@Entity //他是数据库中表映射的类
@Table(name="tab1_user") //指定映射的表明,省略不写默认表明是类同user
public class User {
@Id //指定主键
@GeneratedValue(strategy= GenerationType.IDENTITY) //id自增
private Integer id;
@Column(name="user_name",length=5) //与数据表对应的一个字段
private String username;
@Column //省略不写默认字段名就是属性名
private String password;
public Integer getId() {
return id;
}
public void setId(Integer 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;
}
}
知识点:1 .@Entity //他是数据库中表映射的类
2. @Table(name="tab1_user") //指定映射的表明,省略不写默认表明是类同user
3.@Id //指定主键
@GeneratedValue(strategy= GenerationType.IDENTITY) //id自增
@Column(name="user_name",length=5) //与数据表对应的一个字段
@Column //省略不写默认字段名就是属性名
4. setter和getter不要忘记
4.创建接口 dao/Repository
package com.cc.springboot.dao;
import com.cc.springboot.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
//自定义接口继承JpaRepository,就会有增删改查操作且分页排序 等功能
//指定的泛型<操作的实体类,主键的数据类型>
public interface Repository extends JpaRepository<User, Integer> {
}
知识点:1. 自定义接口继承JpaRepository,就会有增删改查操作且分页排序 等功能
2. 指定的泛型<操作的实体类,主键的数据类型>
5.创建controller测试
package com.cc.springboot.controller;
import com.cc.springboot.dao.Repository;
import com.cc.springboot.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.Optional;
@RestController
public class UserController {
@Autowired
Repository repository;
// 通过id获取用户
@GetMapping("/user/{id}")
public User getUserById(@PathVariable("id") Integer id){
Optional<User> userOptional = repository.findById(id);
User user = userOptional.get();
return user;
}
// 新增用户
@GetMapping("/user")
public User addUser(User user){
User user1 = repository.save(user);
return user1;
}
}
知识点:1.@Autowired //注入接口