控制台打印出来的 sql 语句类似下面这样:
- drop table if exists person
- CREATE TABLE `person` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT,
- `age` int(11) DEFAULT NULL,
- `name` varchar(255) DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- alter table person add constraint UK_p0wr4vfyr2lyifm8avi67mqw5 unique (name)
4.创建操作数据库的 Repository 接口
- @Repository
- public interface PersonRepository extends JpaRepository<Person, Long> {
- }
首先这个接口加了 @Repository 注解,代表它和数据库操作有关。另外,它继承了 JpaRepository接口,而JpaRepository长这样:
- @NoRepositoryBean
- public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
- List<T> findAll();
-
- List<T> findAll(Sort var1);
-
- List<T> findAllById(Iterable<ID> var1);
-
- <S extends T> List<S> saveAll(Iterable<S> var1);
-
- void flush();
-
- <S extends T> S saveAndFlush(S var1);
-
- void deleteInBatch(Iterable<T> var1);
-
- void deleteAllInBatch();
-
- T getOne(ID var1);
-
- <S extends T> List<S> findAll(Example<S> var1);
-
- <S extends T> List<S> findAll(Example<S> var1, Sort var2);
- }
这表明我们只要继承了JpaRepository 就具有了 JPA 为我们提供好的增删改查、分页查询以及根据条件查询等方法。
4.1 JPA 自带方法实战
1) 增删改查
1.保存用户到数据库
- Person person = new Person("SnailClimb", 23);
- personRepository.save(person);
save()方法对应 sql 语句就是:insert into person (age, name) values (23,"snailclimb")
2.根据 id 查找用户
- Optional<Person> personOptional = personRepository.findById(id);
findById()方法对应 sql 语句就是:select * from person p where p.id = id
3.根据 id 删除用户
- personRepository.deleteById(id);
deleteById()方法对应 sql 语句就是:delete from person where id=id
4.更新用户 (编辑:云计算网_泰州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|