springboot axios封装分页
时间: 2023-09-19 13:05:01 浏览: 39
下面是一个简单的分页请求的示例,使用了axios和Spring Boot:
前端代码:
```javascript
// 分页查询
function getPage(pageNum, pageSize) {
const url = `/api/users?pageNum=${pageNum}&pageSize=${pageSize}`;
return axios.get(url).then(response => response.data);
}
```
后端代码:
```java
@GetMapping("/users")
public Page<User> getUsers(@RequestParam("pageNum") int pageNum, @RequestParam("pageSize") int pageSize) {
Pageable pageable = PageRequest.of(pageNum, pageSize);
return userRepository.findAll(pageable);
}
```
其中,`Pageable`是Spring Boot中的分页接口,它可以通过`PageRequest`工厂类来创建。`Page`则是Spring Boot中的分页实体类,它包含了查询结果、当前页码、每页大小等信息。
使用上述代码,前端发送分页请求时,会将当前页码和每页大小作为参数传递给后端。后端则会查询数据库并返回分页结果给前端。
相关问题
Vue3 SpringBoot Axios注册小案例
好的,下面是Vue3 SpringBoot Axios注册小案例的步骤:
1. 创建Vue3项目
使用Vue CLI创建一个新的Vue3项目,可以使用以下命令:
```
vue create vue3-demo
```
然后安装Axios:
```
npm install axios --save
```
2. 创建注册页面
在Vue3项目中创建一个注册页面,可以使用以下代码:
```
<template>
<div class="register">
<h2>注册</h2>
<form>
<div>
<label for="username">用户名</label>
<input type="text" id="username" v-model="username" />
</div>
<div>
<label for="password">密码</label>
<input type="password" id="password" v-model="password" />
</div>
<div>
<label for="email">邮箱</label>
<input type="email" id="email" v-model="email" />
</div>
<button @click.prevent="register">注册</button>
</form>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
username: '',
password: '',
email: '',
};
},
methods: {
register() {
axios.post('http://localhost:8080/register', {
username: this.username,
password: this.password,
email: this.email,
}).then(response => {
console.log(response.data);
}).catch(error => {
console.log(error);
});
},
},
};
</script>
<style>
.register {
max-width: 400px;
margin: 0 auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 5px;
}
.register h2 {
text-align: center;
}
.register form {
display: flex;
flex-direction: column;
}
.register div {
margin-bottom: 10px;
}
.register label {
font-weight: bold;
margin-right: 10px;
}
.register input {
padding: 5px;
border-radius: 5px;
border: 1px solid #ccc;
}
.register button {
margin-top: 10px;
padding: 5px;
border-radius: 5px;
border: none;
background-color: #007bff;
color: #fff;
cursor: pointer;
}
</style>
```
3. 创建SpringBoot项目
使用Spring Initializr创建一个新的SpringBoot项目,添加Web和MyBatis依赖。
4. 创建数据库表
在MySQL中创建一个名为user的表,包含id、username、password和email字段。
5. 创建实体类和Mapper
创建一个User实体类和一个UserMapper接口,用于操作user表。
User实体类:
```
public class User {
private int id;
private String username;
private String password;
private String email;
// getters and setters
}
```
UserMapper接口:
```
@Mapper
public interface UserMapper {
@Insert("insert into user(username, password, email) values(#{username}, #{password}, #{email})")
int insert(User user);
}
```
6. 创建Controller
创建一个UserController类,用于处理注册请求。
```
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@PostMapping("/register")
public String register(@RequestBody User user) {
int result = userMapper.insert(user);
if (result == 1) {
return "注册成功";
} else {
return "注册失败";
}
}
}
```
7. 运行项目
在命令行中进入SpringBoot项目目录,运行以下命令启动项目:
```
mvn spring-boot:run
```
然后在浏览器中打开Vue3项目,访问注册页面,输入用户名、密码和邮箱,点击注册按钮,就可以向SpringBoot后台发送注册请求了。注册成功后,在控制台中可以看到输出的信息。
以上就是Vue3 SpringBoot Axios注册小案例的步骤。
java springboot axios mysql实现用户登录和注册具体代码
以下是一个简单的Java Spring Boot应用程序,使用MySQL数据库和axios库实现用户登录和注册的示例代码。
1. 创建数据库表
在MySQL数据库中创建一个名为"user"的表,用来存储用户信息,包括id、用户名和密码。
```
CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(45) NOT NULL,
password varchar(45) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
2. 创建Java实体类
创建一个名为"User"的Java实体类,用来映射"user"表。
```
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
// getters and setters
}
```
3. 创建Spring Boot控制器
创建一个名为"UserController"的Spring Boot控制器,用来处理用户注册和登录请求。
```
@RestController
@RequestMapping("/api/user")
public class UserController {
@Autowired
private UserRepository userRepository;
@PostMapping("/register")
public ResponseEntity<?> register(@RequestBody User user) {
if (userRepository.existsByUsername(user.getUsername())) {
return ResponseEntity.badRequest().body("Username is already taken!");
}
User savedUser = userRepository.save(user);
return ResponseEntity.ok(savedUser);
}
@PostMapping("/login")
public ResponseEntity<?> login(@RequestBody User user) {
User foundUser = userRepository.findByUsernameAndPassword(user.getUsername(), user.getPassword());
if (foundUser == null) {
return ResponseEntity.badRequest().body("Username or password is incorrect!");
}
return ResponseEntity.ok(foundUser);
}
}
```
4. 创建Spring Boot存储库
创建一个名为"UserRepository"的Spring Boot存储库,用来处理对"user"表的数据库操作。
```
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
boolean existsByUsername(String username);
User findByUsernameAndPassword(String username, String password);
}
```
5. 创建Vue.js前端应用程序
创建一个名为"Login.vue"的Vue.js组件,用来处理用户登录请求。
```
<template>
<div>
<h1>Login</h1>
<form @submit.prevent="login">
<div>
<label>Username:</label>
<input type="text" v-model="username" required>
</div>
<div>
<label>Password:</label>
<input type="password" v-model="password" required>
</div>
<button type="submit">Login</button>
</form>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
username: '',
password: ''
};
},
methods: {
login() {
axios.post('/api/user/login', {
username: this.username,
password: this.password
})
.then(response => {
localStorage.setItem('currentUser', JSON.stringify(response.data));
this.$router.push('/');
})
.catch(error => {
console.log(error);
});
}
}
};
</script>
```
创建一个名为"Register.vue"的Vue.js组件,用来处理用户注册请求。
```
<template>
<div>
<h1>Register</h1>
<form @submit.prevent="register">
<div>
<label>Username:</label>
<input type="text" v-model="username" required>
</div>
<div>
<label>Password:</label>
<input type="password" v-model="password" required>
</div>
<button type="submit">Register</button>
</form>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
username: '',
password: ''
};
},
methods: {
register() {
axios.post('/api/user/register', {
username: this.username,
password: this.password
})
.then(response => {
localStorage.setItem('currentUser', JSON.stringify(response.data));
this.$router.push('/');
})
.catch(error => {
console.log(error);
});
}
}
};
</script>
```
6. 运行应用程序
将Java代码打包成一个jar包,并在命令行中运行该jar包,然后在浏览器中打开Vue.js应用程序。
```
java -jar myapp.jar
```
以上就是一个简单的Java Spring Boot应用程序,使用MySQL数据库和axios库实现用户登录和注册的示例代码。