安卓后端mysql_后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)

1 前言&概述

这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug。

本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到的技术包括Jackson、OkHttp、bouncycastle、Spring Data JPA。

2 环境

Android 4.1.2

IDEA 2020.3.1

Spring Boot 2.4.2

MySQL 8.0.23

OpenJDK 11

环境准备就略过了,需要的可以参考这里。

3 后端

3.1 新建项目

97eeb0c5733bf1ee5368eff7504fed06.png

依赖:

0e25d1cd71b341844993488ab1f61ad0.png

3.2 项目结构

413929ec580348209297d5292b885762.png

3.3 实体类

@Entity

@Getter

@Setter

@NoArgsConstructor

@AllArgsConstructor

public class User {

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

private Integer id;

private String name;

private String password;

}

基本的Lombok注解+JPA中的两个注解:

@Id:标识主键

@GeneratedValue:主键生成策略,包括四个

主键生成策略如下:

GenerationType.TABLE:使用一个特定的数据库表格来保存主键,不依赖外部环境和数据库的具体实现,但是不能充分利用数据库特性,一般不会优先使用,且一般配合@TableGenerator使用

GenerationType.SEQUENCE:一些数据库不支持主键自增(如Oracle),这时就可以使用SEQUENCE,只有部分(Oracle/DB2/PostgreSQL)支持序列对象,一般不用于其他数据库

GenerationType.IDENTITY:一般意义上的主键自增长,插入数据时自动给主键复制,比如MySQL中的auto_increment

GenerationType.AUTO:主键生成策略交给持久化引擎,持久化引擎会根据数据库在以上三种主键策略中选择其中一种,这是JPA默认的主键生成策略

3.4 持久层

继承CrudRepository,T为实体类,ID为主键类型:

@Repository

public interface UserRepository extends CrudRepository {

boolean existsByName(String name);

User findByNameAndPassword(String name,String password);

}

一个需要注意的点是CrudRepository继承了Repository,而后者有一个叫查询方法的特性,就是说能根据一些方法中指定的关键字去生成对应的SQL,比如第一个方法existsByName,就根据name判断用户是否存在,参数为一个String name,返回boolean,具体的关键字以及例子参考如下:

8a89f370ac553ea9da9ccb32e47ee593.png

3.5 业务层

@Transactional

@Service

@RequiredArgsConstructor(onConstructor = @__(@Autowired))

public class UserService {

private final UserRepository repository;

public boolean exists(User user){

return repository.existsByName(user.getName());

}

public User findByNameAndPassword(User user){

return repository.findByNameAndPassword(user.getName(),user.getPassword());

}

public boolean insert(User user){

repository.save(user);

return true;

}

public boolean update(User user){

if(repository.findById(user.getId(

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值