2020.06.23 更新
1 概述
使用spring boot作为后端框架与Android端配合mysql进行基本的交互,包含了最基本的增删查改功能.
2 开发环境
Win
IDEA 2019.2
Tomcat 9.0.27
MySQL 8.0.17
Spring Boot 2.2.1
JDK 8
3 后端
3.1 新建一个Spring Boot项目
3.2 实体类
新建User类作为实体类:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
用的其实是3.1链接中的代码,里面有详细的解释.
3.3 持久层
新建UserRepository实现增删查改:
@Repository
public interface UserRepository extends CrudRepository
{
@Query(value = "select * from user where name = ?1",nativeQuery = true)
public List findByName(String name);
@Modifying
@Query(value = "delete from user where name = ?1",nativeQuery = true)
public int deleteByName(String name);
}
由于CrudRepository中已经包含了"增"与"改",所以按需要实现自己的"查"与"删"即可.
CrudRepository的api很简单,官方文档在这里.
"增"使用save即可,参数为实体类
"删"使用deleteById,通过主键删除,若不想通过主键删除可以自己编写sql,像上面一样
"查"使用findAll或findById,自定义查找的话需要自己编写SQL
"改"也可使用save,注意需要设置主键
@Query用于设置SQL语句,nativeQuery表示使用原生SQL.
3.4 业务层
新建一个MainService.java:
@Transactional
@Service
public class MainService {
@Autowired
private UserRepository userRepository;
public Iterable getAllUsers()
{
return userRepository.findAll();
}
public List findByName(String name)
{
return userRepository.findByName(name);
}
public boolean add(String name)
{
User user = new User();
user.setName(name);
userRepository.save(user);
return true;
}
public boolean modify(Integer id,String name)
{
User user = new User();
user.setName(name);
user.setId(id);
userRepository.save(user);
return true;
}
public boolean deleteByName(String name)
{
return userRepository.deleteByName(name) != 0;
}
}
getAllUsers():返回所有行,Iterable<E>类型
findByName():根据name返回所有name相同的行
add直接使用了save,由于save返回的是实体类,原本的代码是这样写的:
return userRepository.save(user) != null;
但是文档说