在日常开发中,我们需要经常对数据库进行“增删改查”操作,虽然简单,但代码写起来却很枯燥。使用spring-data-jpa能够简化开发人员对数据库的操作,能够大量减少对数据库表格属性的配置与sql代码的编写。
引入maven依赖
<!-- spring-data-JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
创建application.properties配置数据源信息
#数据库设置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
创建数据库表格,包含id,name,grade属性。
创建实体类student
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
*
* Created by shiyufeng on 2017/2/10.
*/
@Entity
@Table(name = "student") // 别名
public class student {
@Id
@GeneratedValue
private String id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String grade;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
@Override
public String toString() {
return "student{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", grade='" + grade + '\'' +
'}';
}
}
创建数据访问接口StudentRepository
import cn.entity.student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
/**
* Created by shiyufeng on 2017/2/10.
*/
public interface StudentRepository extends JpaRepository<student, String> {
public student findByName(String name);
public student findById(String id);
@Query("from student s where s.id=:id")
public student findStudent(@Param("id") String id);
}
创建服务控制类JPAController
import cn.entity.student;
import cn.jpaService.StudentRepository;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* 通过spring data jpa 单个操作数据
* Created by shiyufeng on 2017/2/10.
*/
@RestController
@EnableAutoConfiguration
public class JPAController {
@Resource
private StudentRepository studentRepository;
@RequestMapping("addStu")
public void addStu() {
student stu = new student();
stu.setGrade("六年级");
stu.setName("addStu");
studentRepository.save(stu);
}
@RequestMapping("findStudent")
public String getStudent() {
student student = studentRepository.findById("001");
return student.toString();
}
@RequestMapping("findStudent2")
public String getStudent2() {
student student = studentRepository.findStudent("002");
return student.toString();
}
@RequestMapping("findStudent3")
public String getStudentAll() {
List<student> student = studentRepository.findAll();
String a = "";
for (student studnet1 : student) {
a = a + studnet1.toString();
}
return a;
}
}
创建springboot启动类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
启动服务,访问JPAController的映射地址即可对数据库进行简单操作。