楼宇管理系统中的人员信息管理模块 四层架构前后端分离

目录

一.搭建基础框架

1.1创建application文件连接数据库

1.2导入依赖

1.3创建启动类

二.写逻辑代码

2.1创建entity实体类

2.2创建mapper类将方法同一交给AOC容器管理

2.3在mappers中添加usermapper.xml文件进行sql语句的书写

2.4在service层中写我们的业务逻辑代码

2.5添加@service注解实现IUservice

三.创建controller文件 添加UserController类对数据进行前后端数据交互


一.搭建基础框架

1.1创建application文件连接数据库

spring:
  # 配置数据源信息
  datasource:
    # 配置数据源类型
    type: com.zaxxer.hikari.HikariDataSource
    # 配置连接数据库信息
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/commit?characterEncoding=utf-8&useSSL=false
    username: root
    password: 123456
mybatis-plus:
  mapper-locations: classpath:mappers/*.xml
  type-aliases-package: com.woniu.commit.entity

1.2导入依赖

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId> <optional>true</optional>
        </dependency>
        <!-- mysql-connector -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- mybatis-plus代码生成器 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
        </dependency>

    </dependencies>

1.3创建启动类

@SpringBootApplication
@MapperScan("com.woniu.commit.mapper")
public class Demo {
    public static void main(String[] args) {
        SpringApplication.run(Demo.class,args);
    }
}

二.写逻辑代码

2.1创建entity实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String username;
    private String password;
    private int type;
    private String remarks;
}

2.2创建mapper类将方法同一交给AOC容器管理

public interface UserMapper {
        //登录
        User selecyByNameAndPwd(String username, String passwd);
         //查询所有
        List<User> selectAll(int start,int size);
        //查询数据条数
        int selectCount();
        //增加
        int insertUser(User user);
        //修改
        int updateUser(User user);
        //删除
        int deleteUser(int id);
        //根据id查询
        User selectUserById(int id);
}

2.3在mappers中添加usermapper.xml文件进行sql语句的书写

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.woniu.commit.mapper.UserMapper">
    <!-- User实体类和数据库userinfo表的映射关系-->
    <resultMap id="userResult" type="User">
        <!--        colum对应的数据库名字,property对应实体类中名字-->
        <result column="id" property="id"></result>
        <result column="username" property="username"></result>
        <result column="password" property="password"></result>
        <result column="type" property="type"></result>
        <result column="remarks" property="remarks"></result>
    </resultMap>
    <insert id="insertUser">
        insert  into userinfo (username,password) values(#{username},#{password})
    </insert>
    <update id="updateUser">
        update userinfo set username=#{username},password=#{password} where id=#{id}
    </update>
    <delete id="deleteUser">
        delete from userinfo where id=#{id}
    </delete>
    <!--    sql语句中的#括号中的东西必须对应mapper里面的参数-->
    <select id="selecyByNameAndPwd" resultMap="userResult">
          select * from userinfo where username=#{username} and password=#{passwd}
    </select>
    <select id="selectAll" resultMap="userResult">
        SELECT * FROM userinfo limit #{start},#{size}
    </select>
    <select id="selectCount" resultType="int">
        SELECT count(id)FROM userinfo
    </select>

    <select id="selectUserById" resultMap="userResult">
        select * from userinfo where id =#{id}
    </select>

</mapper>

2.4在service层中写我们的业务逻辑代码


public interface IUserService {
    /**
     * 登录
     * @param userName
     * @param passwd
     * @return
     */
    HttpResult login(String userName,String passwd);

    /**
     * 查询用户列表,分页车讯
     * @param pageIndex 页码
     * @param pageSeze 每页的条数(显示多少信息)
     * @return
     */
    HttpResult getUsers(int pageIndex,int pageSeze);

    /**
     * 增加
     * @param user
     * @return
     */

    HttpResult addUser(User user);

    /**
     * 删除
     * @param id
     * @return
     */
    HttpResult removeUser(int id);

    /**
     * 修改
     * @param user
     * @return
     */
    HttpResult updateUser(User user);

    /**
     * 查询用户
     * @param id
     * @return
     */
    HttpResult getUserInfo(int id);


}

2.5添加@service注解实现IUservice

@Service
public class UserServiceImpl implements IUserService {
   //管理权交给ioc容器
    @Autowired(required = false)
    private UserMapper userMapper;
    @Override
    public HttpResult login(String userName, String passwd) {
        HttpResult result = null;
        User user = userMapper.selecyByNameAndPwd(userName, passwd);
        if (user!=null){
            result= new HttpResult(user,0,200,null);
        }else{
            result= new HttpResult(null,0,500,"用户名或密码错误");
        }
        return result;
    }

    @Override
    public HttpResult getUsers(int pageIndex, int pageSize) {
        List<User> users = userMapper.selectAll((pageIndex - 1) * pageSize, pageSize);
        int count = userMapper.selectCount();
        HttpResult result=null;
        System.out.println(users.size());
        if (users!=null &&users.size()>0){
            result=new HttpResult(users,count,200,null);
        }else{
            result=   new HttpResult(null,0,500,"没有更多数据");
        }
        return result;
    }

    @Override
    public HttpResult addUser(User user) {
        int count = userMapper.insertUser(user);
        HttpResult result=null;
        if (count>0){
            result=new HttpResult(null,0,200,"添加成功");
        }else {
            result=new HttpResult(null,0,500,"添加失败");
        }
        return result;
    }

    @Override
    public HttpResult removeUser(int id) {
        int count = userMapper.deleteUser(id);
        HttpResult result=null;
        if (count>0){
            result=new HttpResult(null,0,200,"删除成功");
        }else {
            result=new HttpResult(null,0,500,"删除失败");
        }
        return result;
    }

    @Override
    public HttpResult updateUser(User user) {
        int count = userMapper.updateUser(user);
        HttpResult result=null;
        if (count>0){
            result=new HttpResult(null,0,200,"修改成功");
        }else {
            result=new HttpResult(null,0,500,"修改失败");
        }
        return result;
    }

    @Override
    public HttpResult getUserInfo(int id) {
        User user = userMapper.selectUserById(id);
        HttpResult result=null;
        if (user!=null){
            result=new HttpResult(user,0,200,null);
        }else{
            result= new HttpResult(null,0,500,"没有更多数据");
        }
        return result;
    }

三.创建controller文件 添加UserController类对数据进行前后端数据交互

@RequestMapping("/user")
@RestController
@CrossOrigin(origins = "*")
public class UserController {
    @Autowired
    private IUserService userService;

    @RequestMapping("/login")
    public HttpResult login( @RequestBody UserVo userVo){
        return userService.login(userVo.getUsername(),userVo.getPassword());
    }
    @RequestMapping("/login1")
    public HttpResult login1( String username,String password){
        return userService.login(username,password);
    }
    @RequestMapping("/list")
    public HttpResult getUsers(int pageIndex, int pageSize){
        return userService.getUsers(pageIndex,pageSize);
    }
    @RequestMapping("/add")
    HttpResult insertUser(@RequestBody UserVo vo){
        User user = new User();
        user.setUsername(vo.getUsername());
        user.setPassword(vo.getPassword());
        return userService.addUser(user);
    }
    @PostMapping("/update")
    HttpResult updateUser(@RequestBody User user){
        return userService.updateUser(user);
    }
    @RequestMapping("remove")
    HttpResult deleteUser(int id){
    return userService.removeUser(id);
    }
    @RequestMapping("info")
    HttpResult selectUserById(int id){
        return userService.getUserInfo(id);
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.吸吸欧气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值