Spring data jpa example 2017-04-27 04:04
This is a sample example to quick start to use spring data framework. I assume you have created a Mysql database which name is db. For quick start we only save data into database and query them out without any condition.
The structure of this example
├─main
│  ├─java
│  │  └─com
│  │      └─henryxi
│  │          └─springdata
│  │              └─quickstart
│  │                      Application.java
│  │                      Employee.java
│  │                      EmployeeRepository.java
│  │                      MainController.java
│  │
│  └─resources
│          application.properties
 
The file of pom.xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>1.5.3.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <version>1.5.3.RELEASE</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
</dependency>
The content of application.properties
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://<YOUR_HOST>:3306/db
spring.datasource.username=<YOUR_USER_NAME>
spring.datasource.password=<YOUR_PASSWORD>
Application.java
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
Employee.java
@Entity
public class Employee {
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Integer id;
    private String name;
    private String email;
    //getter and setter methods
}
EmployeeRepository.java
public interface EmployeeRepository extends CrudRepository<Employee,Long> {
}
MainController.java
@Controller
@RequestMapping(path = "/spring-data-jpa")
public class MainController {
    @Autowired
    private EmployeeRepository employeeRepository;
    @GetMapping(path = "/add")
    @ResponseBody
    public String addNewUser(@RequestParam String name, @RequestParam String email) {
        Employee n = new Employee();
        n.setName(name);
        n.setEmail(email);
        employeeRepository.save(n);
        return "Saved";
    }
    @GetMapping(path = "/all")
    @ResponseBody
    public Iterable<Employee> getAllUsers() {
        return employeeRepository.findAll();
    }
}
Execute the main method in Application and access "localhost:8080/spring-data-jpa/add?name=henryxi&email=email@henryxi.com" to save the employ into database. After saving we can access "http://localhost:8080/spring-data-jpa/all" get query the data from database without any condition. The output is like following.
[{"id":1,"name":"henryxi","email":"email@henryxi.com"}]
 
EOF