详细说明使用若依框架开发管理后台的方法,例如前端技术后端技术、如何对数据库增删改查。
时间: 2024-03-27 13:38:14 浏览: 215
若依是一套基于 Spring Boot 和 Vue.js 的开源管理系统快速开发框架。下面是使用若依框架开发管理后台的方法:
**前端技术**
若依框架前端采用的是 Vue.js,使用了 Element UI 组件库和 Vue-Router 路由框架。在前端开发中,主要涉及到的技术包括:
- Vue.js:Vue.js 是一个渐进式 JavaScript 框架,可以用于构建用户界面和单页应用程序(SPA)。
- Element UI:Element UI 是一套基于 Vue.js 的组件库,提供了丰富的 UI 组件和交互效果。
- Vue-Router:Vue-Router 是 Vue.js 官方的路由框架,用于管理单页应用的路由。
**后端技术**
若依框架后端采用的是 Spring Boot,使用了 MyBatis-Plus 增强版和 Shiro 安全框架。在后端开发中,主要涉及到的技术包括:
- Spring Boot:Spring Boot 是一个基于 Spring 框架的快速开发框架,用于构建独立的、可执行的 Spring 应用程序。
- MyBatis-Plus:MyBatis-Plus 是 MyBatis 的增强版,提供了更加便捷的操作数据库的方式。
- Shiro:Shiro 是一个强大且易于使用的 Java 安全框架,提供了身份验证、授权、加密等功能。
**数据库增删改查**
若依框架使用的是 MyBatis-Plus 操作数据库,MyBatis-Plus 提供了丰富的 API,可以简化数据库的增删改查操作。以用户管理为例,以下是一个简单的操作示例:
1. 定义实体类
```java
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class SysUser extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 用户ID
*/
@TableId(value = "user_id", type = IdType.AUTO)
private Long userId;
/**
* 用户账号
*/
@TableField(value = "user_name")
private String userName;
/**
* 用户昵称
*/
@TableField(value = "nick_name")
private String nickName;
/**
* 用户邮箱
*/
@TableField(value = "email")
private String email;
/**
* 手机号码
*/
@TableField(value = "phonenumber")
private String phonenumber;
/**
* 用户性别(0男 1女 2未知)
*/
@TableField(value = "sex")
private String sex;
/**
* 头像地址
*/
@TableField(value = "avatar")
private String avatar;
/**
* 密码
*/
@TableField(value = "password")
private String password;
/**
* 帐号状态(0正常 1停用)
*/
@TableField(value = "status")
private String status;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableField(value = "del_flag")
private String delFlag;
/**
* 最后登录IP
*/
@TableField(value = "login_ip")
private String loginIp;
/**
* 最后登录时间
*/
@TableField(value = "login_date")
private Date loginDate;
/**
* 部门对象
*/
@TableField(exist = false)
private SysDept dept;
/**
* 角色对象
*/
@TableField(exist = false)
private List<SysRole> roles;
/**
* 角色组
*/
@TableField(exist = false)
private Long[] roleIds;
}
```
2. 定义 Mapper 接口
```java
public interface SysUserMapper extends BaseMapper<SysUser> {
/**
* 根据条件分页查询用户列表
*
* @param page 分页对象
* @param user 用户信息
* @return 用户信息集合信息
*/
List<SysUser> selectUserList(@Param("page") Page<SysUser> page, @Param("user") SysUser user);
/**
* 根据用户名查询用户
*
* @param userName 用户名
* @return 用户对象信息
*/
SysUser selectUserByUserName(String userName);
/**
* 根据用户ID查询用户所属角色组
*
* @param userId 用户ID
* @return 结果
*/
List<Integer> selectUserRoleListByUserId(Long userId);
}
```
3. 在 Service 中调用 Mapper
```java
@Service
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
/**
* 查询用户列表
*
* @param user 用户信息
* @return 用户信息集合
*/
@Override
public List<SysUser> selectUserList(SysUser user) {
return baseMapper.selectUserList(user);
}
/**
* 根据用户名查询用户
*
* @param userName 用户名
* @return 用户对象信息
*/
@Override
public SysUser selectUserByUserName(String userName) {
return baseMapper.selectUserByUserName(userName);
}
/**
* 根据用户ID查询用户所属角色组
*
* @param userId 用户ID
* @return 结果
*/
@Override
public List<Integer> selectUserRoleListByUserId(Long userId) {
return baseMapper.selectUserRoleListByUserId(userId);
}
}
```
4. 在 Controller 中调用 Service
```java
@RestController
@RequestMapping("/system/user")
public class SysUserController extends BaseController {
@Autowired
private ISysUserService userService;
/**
* 查询用户列表
*/
@PreAuthorize("@ss.hasPermi('system:user:list')")
@GetMapping("/list")
public TableDataInfo list(SysUser user) {
startPage();
List<SysUser> list = userService.selectUserList(user);
return getDataTable(list);
}
/**
* 根据用户编号获取详细信息
*/
@PreAuthorize("@ss.hasPermi('system:user:query')")
@GetMapping(value = "/{userId}")
public AjaxResult getInfo(@PathVariable Long userId) {
return AjaxResult.success(userService.getById(userId));
}
/**
* 新增用户
*/
@PreAuthorize("@ss.hasPermi('system:user:add')")
@Log(title = "用户管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysUser user) {
user.setSalt(ShiroUtils.randomSalt());
user.setPassword(ShiroUtils.encryptPassword(user.getPassword(), user.getUserName(), user.getSalt()));
return toAjax(userService.save(user));
}
/**
* 修改用户
*/
@PreAuthorize("@ss.hasPermi('system:user:edit')")
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysUser user) {
return toAjax(userService.updateById(user));
}
/**
* 删除用户
*/
@PreAuthorize("@ss.hasPermi('system:user:remove')")
@Log(title = "用户管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{userIds}")
public AjaxResult remove(@PathVariable Long[] userIds) {
return toAjax(userService.removeByIds(Arrays.asList(userIds)));
}
}
```
以上是一个简单的操作示例,若依框架提供了更加便捷的操作数据库的方式,可以参考官方文档进行操作。
阅读全文