1、pom依赖
//引入依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${springcloudalibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2application.yml
server:
port: 8099
servlet:
context-path: /
spring:
application:
name: demo
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
datasource:
url: jdbc:mysql://自己的数据库?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
username:
password:
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update #第一次建表create,后面用update,要不让每次重启都会新建表
show-sql: true
标准的MVC实现
3、Dao层(实现JpaRepository接口)
package com.example.demo.dao;
import com.example.demo.dto.EnterpriseDto;
import com.example.demo.pojo.EnterpriseBase;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author Havery
* @create 2021-12-06-16:57
*/
public interface EnterpriseDao extends JpaRepository<EnterpriseBase,String> {
/**
* 根据姓名模糊查询
* @param name
* @return
*/
prise_main where D_CO_NAME like CONCAT('%',:name,'%')", nativeQuery = true)
@Query(value = "select * from da_enterprise_main where D_CO_NAME like %?1%", nativeQuery = true)
public Page<EnterpriseBase> findEnterpriseBaseByName(@Param("name") String name, Pageable pageable);
/**
* 查询需要的所有信息
*/
@Query(value= "select ID,D_CO_NAME,D_ESTABLISH_DATE,D_CREDIT_CODE,D_LEGAL_PERSON,D_MOBILE,d_enterprise_code from da_enterprise_main",nativeQuery=true)
public List<EnterpriseDto> findNeed();
/**
* 根据ID查询信息
*/
@Query(value= "select ID,D_CO_NAME,D_ESTABLISH_DATE,D_CREDIT_CODE,D_LEGAL_PERSON,D_MOBILE,d_enterprise_code from da_enterprise_main where ID=:ID",nativeQuery=true)
public EnterpriseDto findNeedByID(@Param("ID") String ID);
}
4、直接放控制层代码(jpa自带很多方法可以直接使用,简单记录和学习)
package com.example.demo.controller;
import com.example.demo.dao.EnterpriseDao;
import com.example.demo.dto.EnterpriseDto;
import com.example.demo.pojo.EnterpriseBase;
import com.example.demo.service.EnterpriseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.*;
import org.springframework.data.querydsl.QPageRequest;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author Havery
* @create 2021-12-06-16:57
*/
@RestController
public class EnterpriseController {
@Autowired
EnterpriseDao enterpriseDao;
@Autowired
EnterpriseService enterpriseService;
/**
* 根据企业名称模糊查询
*/
@RequestMapping("/dimFindEnterpriseBaseByName")
public Page<EnterpriseBase> dimFindEnterpriseBaseByName( @RequestParam("name") String name,
@RequestParam("page") Integer page,
@RequestParam("size") Integer size
){
Page<EnterpriseBase> enterpriseBaseByName = enterpriseService.dimFindEnterpriseBaseByName(name, page,size);
return enterpriseBaseByName;
}
/**
* 返回所有企业信息
*/
@RequestMapping("/AllQuery")
@ResponseBody
public List<EnterpriseBase> AllFindEnterprise(){
List<EnterpriseBase> all = enterpriseDao.findAll();
return all;
}
/**
* 返回所有企业信息(分页)
*/
@RequestMapping("/AllQueryEnterprise/{page}/{size}")
@ResponseBody
public Page<EnterpriseBase> AllQueryEnterprise(@PathVariable("page") Integer page,@PathVariable("size") Integer size){
Pageable pageable=PageRequest.of(page-1,size);
Page<EnterpriseBase> all = enterpriseDao.findAll(pageable);
return all;
}
@RequestMapping("/updateInfo")
public String updateEnterpriseInfo(EnterpriseBase enterpriseBase){
EnterpriseBase update = enterpriseDao.save(enterpriseBase);
if(update!=null){
return "success";
}else {
return "error";
}
}
/**
* 根据id查询
* @return
*/
@RequestMapping("/queryFindById")
public boolean queryFindById(String ID){
return enterpriseDao.existsById(ID);
}
/**
* 增加信息
*/
@ResponseBody
@RequestMapping("/AddInfo")
public EnterpriseBase appEnterpriseInfo(EnterpriseBase enterpriseBase){
EnterpriseBase saveEnterprise = enterpriseDao.save(enterpriseBase);
return saveEnterprise;
}
/**
* 根据id查找
*/
@RequestMapping("/findNeedByID/{ID}")
public EnterpriseDto findNeedByID(@PathVariable("ID") String ID){
return enterpriseService.findNeedByID(ID);
}
/**
* 根据id删除
*/
@RequestMapping("/deleteByID")
@ResponseBody
public boolean deleteByID(@RequestBody List<EnterpriseBase> enterpriseBases){
enterpriseDao.deleteInBatch(enterpriseBases);
return true;
}
}