zoukankan      html  css  js  c++  java
  • springboot2.x整合JPA

    项目结构

    pom

    1. <project xmlns="http://maven.apache.org/POM/4.0.0"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    4. <modelVersion>4.0.0</modelVersion>
    5. <groupId>com.pwl.springboot-jpa</groupId>
    6. <artifactId>springboot-jpa</artifactId>
    7. <packaging>war</packaging>
    8. <version>0.0.1-SNAPSHOT</version>
    9. <name>Mybatis Maven Webapp</name>
    10. <url>http://maven.apache.org</url>
    11. <parent>
    12. <groupId>org.springframework.boot</groupId>
    13. <artifactId>spring-boot-starter-parent</artifactId>
    14. <version>2.0.1.RELEASE</version>
    15. </parent>
    16. <dependencies>
    17. <dependency>
    18. <groupId>junit</groupId>
    19. <artifactId>junit</artifactId>
    20. <scope>test</scope>
    21. </dependency>
    22. <dependency>
    23. <groupId>org.springframework.boot</groupId>
    24. <artifactId>spring-boot-starter-web</artifactId>
    25. </dependency>
    26. <dependency>
    27. <groupId>org.springframework.boot</groupId>
    28. <artifactId>spring-boot-starter-data-jpa</artifactId>
    29. </dependency>
    30. <dependency>
    31. <groupId>mysql</groupId>
    32. <artifactId>mysql-connector-java</artifactId>
    33. </dependency>
    34. <dependency>
    35. <groupId>org.springframework.boot</groupId>
    36. <artifactId>spring-boot-devtools</artifactId>
    37. <optional>true</optional>
    38. </dependency>
    39. </dependencies>
    40. <build>
    41. <plugins>
    42. <plugin>
    43. <groupId>org.apache.maven.plugins</groupId>
    44. <artifactId>maven-compiler-plugin</artifactId>
    45. <configuration>
    46. <source>1.8</source>
    47. <target>1.8</target>
    48. </configuration>
    49. </plugin>
    50. </plugins>
    51. </build>
    52. </project>

    然后配置数据库连接

    1. spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot?useSSL=false
    2. spring.datasource.username=root
    3. spring.datasource.password=root
    4. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    5. spring.jpa.properties.hibernate.hbm2ddl.auto=update
    6. spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
    7. spring.jpa.show-sql= true

    实体类

    1. package com.pwl.springboot.entity;
    2. import javax.persistence.Entity;
    3. import javax.persistence.Id;
    4. import javax.persistence.Table;
    5. @Entity
    6. @Table(name="user") //指定数据库表名
    7. public class User {
    8. @Id
    9. private String id;
    10. private String name;
    11. private String age;
    12. public String getId() {
    13. return id;
    14. }
    15. public void setId(String id) {
    16. this.id = id;
    17. }
    18. public String getName() {
    19. return name;
    20. }
    21. public void setName(String name) {
    22. this.name = name;
    23. }
    24. public String getAge() {
    25. return age;
    26. }
    27. public void setAge(String age) {
    28. this.age = age;
    29. }
    30. }

    service层

    UserService接口

    1. package com.pwl.springboot.service;
    2. import com.pwl.springboot.entity.User;
    3. public interface UserService {
    4. public User getUserByname(String name);
    5. }

    UserServiceImpl实现类

    1. package com.pwl.springboot.service.impl;
    2. import org.springframework.beans.factory.annotation.Autowired;
    3. import org.springframework.stereotype.Service;
    4. import com.pwl.springboot.dao.UserDao;
    5. import com.pwl.springboot.entity.User;
    6. import com.pwl.springboot.service.UserService;
    7. @Service
    8. public class UserServiceImpl implements UserService{
    9. @Autowired
    10. private UserDao userDao;
    11. @Override
    12. public User getUserByname(String name) {
    13. User user = userDao.findByName(name);
    14. return user;
    15. }
    16. }

    dao

    1. package com.pwl.springboot.dao;
    2. import org.springframework.data.jpa.repository.JpaRepository;
    3. import com.pwl.springboot.entity.User;
    4. public interface UserDao extends JpaRepository<User, String> {
    5. public User findByName(String name);
    6. }

    主要就是继承了JpaRepository

    具体的关键字,使用方法和生产成SQL如下表所示

    Keyword Sample JPQL snippet
    And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2
    Or findByLastnameOrFirstname … where x.lastname = ?1 or x.firstname = ?2
    Is,Equals findByFirstnameIs,findByFirstnameEquals … where x.firstname = ?1
    Between findByStartDateBetween … where x.startDate between ?1 and ?2
    LessThan findByAgeLessThan … where x.age < ?1
    LessThanEqual findByAgeLessThanEqual … where x.age ⇐ ?1
    GreaterThan findByAgeGreaterThan … where x.age > ?1
    GreaterThanEqual findByAgeGreaterThanEqual … where x.age >= ?1
    After findByStartDateAfter … where x.startDate > ?1
    Before findByStartDateBefore … where x.startDate < ?1
    IsNull findByAgeIsNull … where x.age is null
    IsNotNull,NotNull findByAge(Is)NotNull … where x.age not null
    Like findByFirstnameLike … where x.firstname like ?1
    NotLike findByFirstnameNotLike … where x.firstname not like ?1
    StartingWith findByFirstnameStartingWith … where x.firstname like ?1 (parameter bound with appended %)
    EndingWith findByFirstnameEndingWith … where x.firstname like ?1 (parameter bound with prepended %)
    Containing findByFirstnameContaining … where x.firstname like ?1 (parameter bound wrapped in %)
    OrderBy findByAgeOrderByLastnameDesc … where x.age = ?1 order by x.lastname desc
    Not findByLastnameNot … where x.lastname <> ?1
    In findByAgeIn(Collection ages) … where x.age in ?1
    NotIn findByAgeNotIn(Collection age) … where x.age not in ?1
    TRUE findByActiveTrue() … where x.active = true
    FALSE findByActiveFalse() … where x.active = false
    IgnoreCase findByFirstnameIgnoreCase … where UPPER(x.firstame) = UPPER(?1)

    最后就是controller

    1. package com.pwl.springboot.controller;
    2. import org.springframework.beans.factory.annotation.Autowired;
    3. import org.springframework.stereotype.Controller;
    4. import org.springframework.web.bind.annotation.RequestMapping;
    5. import org.springframework.web.bind.annotation.ResponseBody;
    6. import com.pwl.springboot.entity.User;
    7. import com.pwl.springboot.service.UserService;
    8. @Controller
    9. @RequestMapping("/")
    10. public class HelloController {
    11. @Autowired
    12. private UserService userService;
    13. @RequestMapping("hello")
    14. @ResponseBody
    15. public String hello() {
    16. return "hello_world";
    17. }
    18. @RequestMapping("getUser")
    19. @ResponseBody
    20. public User getUser(String name) {
    21. return userService.getUserByname(name);
    22. }
    23. }

    测试结果

    原文地址:https://blog.csdn.net/qq_38157516/article/details/82379078
  • 相关阅读:
    楼宇及工业自动化总线协议介绍
    PROFIBUS,PROFINET,Ethernet三者的区别
    转:OSAL多任务资源分配机制
    Zigbee系列 学习笔记二(工程文件分析)
    Zigbee系列 学习笔记一(协议栈)
    STC12C5A60S2单片机 PWM调试
    单片机 IO口配置模式介绍
    串口通信校验方式
    STC12C5A60S2单片机 串口调试
    本地Nexus 3.3.2 启动
  • 原文地址:https://www.cnblogs.com/jpfss/p/11003792.html
Copyright © 2011-2022 走看看