springboot2.0系列六(整合springdatajpa)

整合springdatajpa

 pom文件引入依赖

      <parent>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-parent</artifactId>

            <version>2.0.0.RELEASE</version>

      </parent>

      <dependencies>

            <dependency>

                  <groupId>org.springframework.boot</groupId>

                  <artifactId>spring-boot-starter-data-jpa</artifactId>

            </dependency>

            <dependency>

                  <groupId>mysql</groupId>

                  <artifactId>mysql-connector-java</artifactId>

            </dependency>

            <dependency>

                  <groupId>org.springframework.boot</groupId>

                  <artifactId>spring-boot-starter-web</artifactId>

            </dependency>

      </dependencies>

 

创建User实体类

@Entity(name = "users")

public class UserEntity {

      @Id

      @GeneratedValue(strategy = GenerationType.IDENTITY)

      private Integer id;

      @Column(name = "name")

      private String name;

      @Column(name = "age")

      private Integer age;

}

 

 创建UserDao

public interface UserDao extends JpaRepository<User, Integer> {

}

 

创建IndexController

@RestController

public class IndexController {

      @Autowired

      private UserDao userDao;

 

      @RequestMapping("/jpaFindUser")

      public Object jpaIndex(User user) {

            Optional<User> userOptional = userDao.findById(user.getId());

            User reusltUser = userOptional.get();

            return reusltUser == null ? "没有查询到数据" : reusltUser;

      }

 

}

 启动项目

@SpringBootApplication

public class JpaApp {

 

      public static void main(String[] args) {

            SpringApplication.run(JpaApp.class, args);

      }

 

}

Repository 接口

Repository 接口是 Spring Data JPA 中为我我们提供的所有接口中的顶层接口 Repository 提供了两种查询方式的支持
    1)基于方法名称命名规则查询
    2)基于@Query 注解查询

方法名称命名规则查询

规则:
    findBy(关键字)+属性名称(属性名称的首字母大写)+查询条件(首字母大写)
关键字 方法命名 sql where 字句
And findByNameAndPwd where name= ? and pwd =?
Or findByNameOrSex where name= ? or sex=?
Is,Equal findById, findByIdEquals
Between findByIdBetween where id between ? and ?
LessThan findByIdLessThan where id < ?
LessThanEqual findByIdLessThanEquals where id <= ?
GreaterThan findByIdGreaterThan where id > ?
GreaterThanEqual findByIdGreaterThanEquals where id > = ?
After findByIdAfter where id > ?
Before findByIdBefore where id < ?
IsNull findByNameIsNull where name is null
isNotNull,Not Null findByNameNotNull where name is not
Like findByNameLike where name like ?
NotLike findByNameNotLike where name not like ?
StartingWith findByNameStartingWith where name like '?%'
EndingWith findByNameEndingWith where name like '%?'
Containing findByNameContaining where name like '%?%'
OrderBy findByIdOrderByXDesc where id=? order by x desc
Not findByNameNot where name <> ?
In findByIdIn(Collection<?> c) where id in (?)
NotIn findByIdNotIn(Collection<?> c) where id not in (?)
True findByAaaTue where aaa = true
False findByAaaFalse where aaa = false
IgnoreCase findByNameIgnoreCase where UPPER(name)=UPPER(?)

猜你喜欢

转载自blog.csdn.net/wota5037/article/details/111410878