利⽤SpringBoot为AndroidApp搭建⼀个简易的后台(⼀)⼀、安装IDEA
⼯欲善其事必先利其器,先下载安装开发⼯具IDEA。如果已安装,可以直接跳过。
那啥⼯具使⽤⽅法:
1、安装完idea之后,点击试⽤进⼊。
2、把jetbrains-agent-latest.zip拖⼊idea
3、重启后会弹出那啥框,选择license server,确认。
4、那啥完成
⼆、安装MySQL
需要安装mysql和mysql-workbench
(版本为8.0.15)
三、新建数据库并存⼊相关测试数据
1、打开MySQL Workbench,新建数据库连接。(点击MySQL Connection 旁边的+号添加)
本地的Hostname为localhost
2、新建数据库
Create a new schema in the connected server
3、双击demoapp,在Tables中右键Create Table新建表格。
其中PK(primary key):主键,
NN(not null):⾮空,
UQ(unique):唯⼀索引,
B/BIN(binary):⼆进制数据(⽐较⼤),
UN(unsigned):⽆符号(⾮负数),
ZF(zero fill):填充0,例如值为1,int(4),则显⽰ 0001,
AI(auto increment):⾃增,
G(generated column):由其他列计算⽽得
查看表格,并添加数据,
user_id作为主键,不能为空,需要⾃增。( PK、NN、ZF 都勾上)
四、新建Spring Boot⼯程
@RestController
public class UserController {
@RequestMapping("/getuserlist")
public String getUserList(){
return"获取成功";
}
}
成功后,再新建class⽂件ApiResult返回通⽤的结果。code为错误码,status为错误码的说明,data为需要返回的信息,所以类型为Object,message为相关信息。
public class ApiResult {
private int code;
private String status;
private Object data;
private String message;
public int getCode(){
return code;
}
public void setCode(int code){
}
public String getStatus(){
return status;
}
public void setStatus(String status){
this.status = status;
}
public Object getData(){
return data;
}
public void setData(Object data){
this.data = data;
}
public String getMessage(){
return message;
}
public void setMessage(String message){
}
}
最后回到UserContoroller,修改getUserList⽅法。
@RestController
public class UserController {
@RequestMapping("/getuserlist")
public ApiResult getUserList(){
/
/返回结果
ApiResult apiResult =new ApiResult();
apiResult.setCode(300);//成功的代码
apiResult.setStatus("Success");//状态
apiResult.setData("123456");//需要返回的信息
return apiResult;
}
}
现在能获取到结果了,但我们想要的是SQL数据库中存储的信息,⽽不是固定的字符串。
所以就到SQL的处理了。
先在resources⽂件夹下的application.properties中配置SQL的信息。
其中XXX为SQL的地址,如果本地则为localhost,阿⾥云则为外⽹ip。demoapp为数据库名,yyy为数据库的密码。? serverTimezone=UTC ⽤于设定时区,如果删除可能会出现You must configure either the server or JDBC driver to use a more specifc time zone value if you want to utilize time zone support的报错。
#配置sql
# ?serverTimezone=UTC 为设定时区
spring.datasource.url=jdbc:mysql://XXX:3306/demoapp?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=yyy
spring.datasource.driver-class-name=Driver
然后再添加数据源,在右则的Database中点击+号 Data Source —> MySQL,填上数据库的信息。Test Connection 出现Successful 就OK了(如果Test Connection为灰⾊不可点击,点击下⽅的提⽰,下载driver即可),之后就可以IDEA的Database中⽀持查看此数据库了。
对数据库的操作有JDBC和JPA两种⽅法,其中JPA为SpringBoot推荐的使⽤⽅法,所以这⾥就使⽤JPA。
⾸先添加JPA的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
然后修改application.properties,新增JPA的配置。注意:如果表格有数据,不要使⽤create模式,同名表格会被覆盖。
#在建表的时候,将默认的存储引擎切换为InnoDB
spring.jpa.database-platform=MySQL5InnoDBDialect
#程序启动时删除并且创建实体类对应的表(注意:配置了这个之后,如果有同名的表,会被删除覆盖,慎⽤)
#spring.jpa.hibernate.ddl-auto=create
之后新建两个class⽂件,实体对象UserDAO.java 和 数据库访问层UserRepository.java(如果上⾯没
有使⽤create模式,要到MySQL Workbench 中新建 user_info表格 )
UserDAO:实体类需要使⽤ @Entity 注解标注。并且实体类的属性也要进⾏标注,使⽤ @Id 标注主键,使⽤ @Column 标注⾮主键。⽰例:
import*;
/**
* USER表格
* */
@Entity
mysql下载app@Table(name="user_info")//指定表名
public class UserDao {
@Id//主键
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer userId;
@Column(name="user_name")
private String userName;
@Column(name="user_password")
private String userPassword;
@Column(name="user_mailbox")
private String userMailbox;
@Column(name="user_phone")
private String userPhone;
@Column(name="user_token")
private String userToken;
@Column(name="user_repository_time")
private String userRepositoryTime;
@Column(name="user_login_last_time")
private String userLoginLastTime;
public Integer getUserId(){
return userId;
}
public void setUserId(Integer userId){
this.userId = userId;
}
public String getUserName(){
return userName;
}
public void setUserName(String userName){
this.userName = userName;
}
public String getUserPassword(){
return userPassword;
}
public void setUserPassword(String userPassword){
this.userPassword = userPassword;
}
public String getUserMailbox(){
return userMailbox;
}
public void setUserMailbox(String userMailbox){
this.userMailbox = userMailbox;
}
public String getUserPhone(){
return userPhone;
}
public void setUserPhone(String userPhone){
this.userPhone = userPhone;
}
public String getUserToken(){
return userToken;
}
public void setUserToken(String userToken){
this.userToken = userToken;
}
public String getUserRepositoryTime(){
return userRepositoryTime;
}
public void setUserRepositoryTime(String userRepositoryTime){
this.userRepositoryTime = userRepositoryTime;
}
public String getUserLoginLastTime(){
return userLoginLastTime;
}
public void setUserLoginLastTime(String userLoginLastTime){
this.userLoginLastTime = userLoginLastTime;
}
}
UserRepository.java:Repository为数据库访问层,它在内部封装了数据查询和存储的逻辑,也可以在这⾥⾃定义DAO的实现⽅法。
@Repository
public interface UserRepository extends JpaRepository<UserDao,Integer>{
}
最后 JPA增删查改的基本使⽤:
增加User:使⽤Repository.save⽅法
@Autowired
private UserRepository userRepository;
public void addUser(UserDao userInfo){
UserDao userDao=new UserDao();
userDao.UserName());
userRepository.save(userDao);
}
删除User:使⽤Repository.delete⽅法
@After
public void after(){
userRepository.deleteById(1);
}
查User:使⽤ Repository.findByXXX或者 Repository.findAll;
默认只提供Repository.findById⽅法,如果要根据UserName查询,需要在UserRepository中⾃定义,UserRepository中⽅法的命名有⼀定的规则。如果表中为id,则为findById。如果表中为user_name,则为findByUserName。
⽰例:
⾃定义⽅法:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论