JPA可以自动生成数据表
1.先写实体类与数据表进行映射:
package com.atguigu.entity; import javax.persistence.*; //使用JPA注解配置映射关系 @Entity//告诉JPA这是一个实体类(和数据表映射的类) @Table(name = "tbl_user")//@Table注解来指定和哪个数据表映射,如果省略默认表名为类名小写,即user public class User { @Id//这是一个主键 @GeneratedValue(strategy = GenerationType.IDENTITY)//自增主键 private Integer id; @Column(name = "last_name",length = 50)//对应数据表的一个列,自己指定列名和长度 private String lastName; @Column//如果省略,默认列名就为属性名 private String email; //setter,getter,构造,toString略... }
2.在Springboot配置文件中配置JPA,下面用的yml文件
spring: datasource: url: jdbc:mysql://192.168.144.143:3306/jpa username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver jpa: hibernate: # 更新或者创建表结构 ddl-auto: update # 控制台显示sql show-sql: true
3.写dao接口要继承JpaRepository<K,V>接口,K表示要操作的实体类,V表示实体类对应的数据表主键的数据类型
package com.atguigu.repository;
import com.atguigu.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
//继承JpaRepository<K,V>完成对数据库的操作,K表示要操作的实体类,V表示主键类型
public interface UserRepository extends JpaRepository<User,Integer> {//JpaRepository接口中有基本的增删改查方法和分页排序方法
}
4.编写controller层进行测试
//虽然dao接口中没有写任何的方法,这里依然可以调用
@RestController public class UserController { @Autowired UserRepository userRepository; @GetMapping("/user/{id}") public User getUserById(@PathVariable("id") Integer id){ User user = userRepository.findById(id).get(); return user; } @GetMapping("/user") public User insertUser(User user){ User save = userRepository.save(user); return save; } }
5.启动项目之后会发现,JPA会给我们自动创建好了数据表