后端弹簧引导+前端Android交互+ mysq

  

1。概述

  

使用弹簧引导作为后端框架与Android端配合mysql进行基本的交互,包含了最基本的增删查改功能。

  

2。开发环境

  
      <李> win10李   <李>想法李   <李> tomcat9.0.27李   <李> mysql8.0.17李   <李>春季启动   
  

3。后端

  

(1)新建一个弹簧启动项目

  

可以看这里

  

(2)实体   

新建用户类作为实体类:

  
 <代码类="语言java ">包com.test;
  
  进口javax.persistence.Entity;
  进口javax.persistence.GeneratedValue;
  进口javax.persistence.GenerationType;
  进口javax.persistence.Id;
  
  @ entity
  公开课用户{
  @ id
  @GeneratedValue(策略=GenerationType.AUTO)
  私人整数id;
  私人字符串名称;
  
  公共整数getId () {
  返回id;
  }
  
  公共空间setId(整数id) {
  这一点。id=id;
  }
  
  公共字符串getName () {
  返回名称;
  }
  
  公共空间setName(字符串名称){
  this.name=名称;
  }
  } 
  

这里其实使用的是(1)中的代码,里面有详细的解释。

  

(3)存储库   

新建UserRepository去实现增删查改:

  
 <代码类="语言java ">包com.test;
  
  进口org.springframework.data.jpa.repository.Modifying;
  进口org.springframework.data.jpa.repository.Query;
  进口org.springframework.data.repository.CrudRepository;
  进口org.springframework.data.repository.query.Param;
  进口org.springframework.stereotype.Repository;
  进口org.springframework.web.bind.annotation.RequestParam;
  
  进口并不知道;
  
  @
  公共接口UserRepository延伸CrudRepository<用户,Integer>
  {
  @Query(值=" https://www.yisu.com/zixun/select *从用户名=? 1”,nativeQuery=true)
  公共ListfindByName(字符串名称);
  
  @Modifying
  @Query(值=" https://www.yisu.com/zixun/delete从用户的名字=? 1”,nativeQuery=true)
  公共int deleteByName(字符串名称);
  } 
  

由于CrudRepository中已经包含了“增”与“改”,所以按需要实现自己的“查”与“删“即可。
CrudRepository的api很简单,官方文档在这里。

  
      <李>“增“使用保存即可,参数为实体类李   <李>“删“使用deleteById,通过主键删除,若不想通过主键删除可以自己编写sql,像上面一样李   <李>“查“使用findAll或findById,自定义查找的话需要自己编写sql。   <李>“改,也可使用保存、注意需要设置主键。   
  

@Query用于设置sql, nativeQuery表示使用原生sql。

  

(4)服务   

新建一个MainService.java

  
 <代码类="语言java ">包com.test;
  
  进口org.springframework.beans.factory.annotation.Autowired;
  进口org.springframework.stereotype.Service;
  
  进口javax.transaction.Transactional;
  进口并不知道;
  
  @ transactional
  @ service
  公开课MainService {
  @ autowired
  私人UserRepository UserRepository;
  
  公共IterablegetAllUsers ()
  {
  返回userRepository.findAll ();
  }
  
  公共ListfindByName(字符串名称)
  {
  返回userRepository.findByName(名称);
  }
  
  公共逻辑加(字符串名称)
  {
  用户用户=新用户();
  user.setName(名称);
  userRepository.save(用户);
  返回true;
  }
  
  公共逻辑修改(整数id字符串名称)
  {
  用户用户=新用户();
  user.setName(名称);
  user.setId (id);
  userRepository.save(用户);
  返回true;
  }
  
  公共布尔deleteByName(字符串名称)
  {
  返回userRepository.deleteByName(名字)!=0;
  }
  } 
  
      <李> getAllUsers()返回所有行,Iterable类型李   <李> findByName()根据名字返回所有的名字相同的行。   <李>添加直接使用了保存,由于拯救返回的是实体类,原本的代码是这样写的:   
     <代码类="语言java ">返回userRepository.save(用户)!=零; 
      

    后端弹簧引导+前端Android交互+ mysq”> <br/>但是文档说了不会为null,所以只能强制返回真正的了。</p> </李>
  <李>修改使用了id与名称作为参数,新建一个用户,将其作为setter的参数,然后交给保存。</李>
  <h2 class=后端弹簧引导+前端Android交互+ mysq