SpringBoot如何整合SpringDataJPA

网友投稿 418 2022-12-13


SpringBoot如何整合SpringDataJPA

这篇文章主要介绍了SpringBoot整合SpringDataJPA代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、pom.xml添加依赖

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-data-jpa

mysql

mysql-connector-java

runtime

com.alibaba

fastjson

1.2.62

org.springframework.boot

spring-boot-starter-test

二、配置数据源以及jpa

server:

port: 8080

#数据源

spring:

datasource:

url: jdbc:mysql://192.168.178.5:12345/cloudDB01?useUnicode=true&characterEncoding=UTF-8

username: root

password: 123456

driver-class-name: com.mysql.jdbc.Driver

jpa:

database: MySQL

show-sql: true

hibernate:

naming:

physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

三、创建实体

@Entity

@Table(name = "dept")

public class DeptDTO {

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

@Column(name = "deptno")

private Integer deptNo;

@Column(name = "dname")

private String dName;

@Column(name = "db_source")

private String dbSource;

public Integer getDeptNo() {

return deptNo;

}

public void setDeptNo(Integer deptNo) {

this.deptNo = deptNo;

}

public String getdName() {

return dName;

}

public void setdName(String dName) {

this.dName = dName;

}

public String getDbSource() {

return dbSource;

}

public void setDbSource(String dbSource) {

this.dbSource = dbSource;

}

}

四、创建jpa

public interface DeptRepository extendHqYAocnwYs JpaRepository, JpaSpecificationExecutor, Serializable {

}

我们DeptRepository 继承了JpaRepository接口(SpringDataJPA提供的简单数据操作接口)、JpaSpecificationExecutor(SpringDataJPA提供的复杂查询接口)、Serializable(序列化接口)。我们并不需要做其他的任何操作了,因为SpringBoot以及SpringDataJPA会为我们全部搞定,SpringDataJPA内部使用了类代理的方式让继承了它接口的子http://接口都以spring管理的Bean的形式存在,也就是说我们可以直接使用@Autowired注解在spring管理bean使用

五、创建控制器controller

@RestController

@RequestMapping("/dept")

public class DeptController {

@Autowired

private DeptRepository deptRepository;

@RequestMapping(value = "/findAll", method = {RequestMethod.POST})

public List findAllDept(){

return deptRepository.findAll(); //findAll是jpa提供的查询接口

}

@RequestMapping(value="/addDept", method={RequestMethod.POST})

public DeptDTO saveDept(@RequestBody DeptDTO deptDTO){

deptRepository.save(deptDTO);

return deptDTO;

}

}

六、测试controller

@RunWith(SpringJUnit4ClassRunner.class)

@SpringBootTest(classes = {JpaApplication.class}) //是该项目的启动类

@WebAppConfiguration

@ContextConfiguration

public class DeptControllerTest {

@Autowired

private WebApplicationContext context;

private MockMvc mvc;

@Before

public void setUp() throws Exception {

mvc = MockMvcBuilders

.webAppContextSetup(context)

.build();

}

@Test

public void testQuery() throws Exception {

MvcResult result=mvc.perform(MockMvcRequestBuilders.post("/dept/findAll")).andReturn();

MockHttpServletResponse response = result.getResponse();

String content = response.getContentAsString();

List deptDTOS = JSON.parseArray(content, DeptDTO.class);

for(DeptDTO deptDTO : deptDTOS){

System.out.println(deptDTO.getdName());

}

}

@Test

public void testAdd() throws Exception {

DeptDTO deptDto = new DeptDTO();

deptDto.setdName("海盗船");

deptDto.setDbSource("cloudDB1");

System.out.println(JSON.toJSONString(deptDto));

MvcResult result=mvc.perform(MockMvcRequestBuilders.post("/dept/addDept")

.contentType(MediaType.APPLICATION_JSON).content(JSON.toJSONString(deptDto)))

.andReturn();

MockHttpServletResponse response = result.getResponse();

String content = response.getContentAsString();

DeptDTO deptDTO = JSON.parseObject(content, DeptDTO.class);

System.out.println(deptDTO.getDeptNo());

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:mybatis postgresql 批量删除操作方法
下一篇:SpringBoot整合aop面向切面编程过程解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~