当前位置:   article > 正文

前后端分离项目(一)_前后端分离用bean吗

前后端分离用bean吗

后台搭建

采用SpringBoot搭建项目的后台,完整项目结构如下在这里插入图片描述
结构说明:
bean:里面书写自己的实体类
controller:里面书写和前端交互的路由信息
dao:里面书写接口信息
util:自己的工具类
也可以添加config,可以配置swagger,测试自己的接口是否配置正确
详细配置:
application.yml
在resource/application.yml里面配置数据源与整合mybatis的内容以及端口号

#mysql
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/sportplay?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    username: root
    password: root

#mybatis
mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.zut.sportplay.bean

server:
  port: 9000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

bean省略get,set方法
user:

public class User {
    private int id;
    private String username;
    private String password;
    private String email;
    private String role;
    private Boolean state;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

MainMenu:

public class MainMenu {
    int id;
    String title;
    String path;
    List<SubMenu> sMain;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

SubMenu:

public class SubMenu {
    int id;
    String title;
    String path;
    }
  • 1
  • 2
  • 3
  • 4
  • 5

dao
userDao:

@Repository
public interface UserDao {
    public User getUserByMessage(@Param("username") String username, @Param("password")String password);
    public List<User> findAllUser(@Param("username")String username,@Param("pageStart")int pageState,@Param("pageSize")int pageSize);
    public int getUserCount(@Param("username")String username);
    public int updateState(Integer id,Boolean state);
    public int addUser(User user);
    public int delUser(int id);
    public User findUser(int id);
    public int updateUser(User user);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

由于有一对多的查询,所以再加个MenuDao

@Repository
public interface MenuDao {
    List<MainMenu> findAllMenu();
}
  • 1
  • 2
  • 3
  • 4

Mapper文件
UserMapper.xml

<?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.zut.sportplay.dao.UserDao">
    <select id="getUserByMessage" resultType="com.zut.sportplay.bean.User">
        SELECT * FROM easyuser where username=#{username} and password = #{password} and state = 1
    </select>
    <select id="findAllUser" resultType="com.zut.sportplay.bean.User">
        SELECT * FROM easyUser
        <if test="username !=null ">
            WHERE username like #{username}
        </if>
        LIMIT #{pageStart},#{pageSize}
    </select>

    <select id="getUserCount" resultType="java.lang.Integer">
        SELECT count(*) FROM `easyuser`
        <if test="username !=null ">
            WHERE username like #{username}
        </if>
    </select>
    <update id="updateState">
        UPDATE easyuser SET state = #{state} WHERE id = #{id}
    </update>
    <insert id="addUser" >
        INSERT INTO easyuser
            (username,password,email,role,state)
            VALUE
            (#{username},#{password},#{email},#{role},#{state})
    </insert>
    <delete id="delUser">
        delete from easyuser
                where  id = #{id}
    </delete>
    <select id="findUser" resultType="com.zut.sportplay.bean.User">
        SELECT * FROM easyuser WHERE id = #{id}
    </select>
    <update id="updateUser">
        UPDATE easyuser SET username = #{username} , password = #{password} ,
                            email = #{email} WHERE id = #{id}
    </update>
</mapper>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

Menu.xml

<?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.zut.sportplay.dao.MenuDao">
    <!--这个是一对多的查询内容    -->
    <resultMap id="menuMap" type="com.zut.sportplay.bean.MainMenu">
        <id column="id" property="id"></id>
        <result column="title" property="title"></result>
        <result column="path" property="path"></result>
        <!--下面这个是对应的查询list集合 -->
        <collection property="sMain" ofType="com.zut.sportplay.bean.SubMenu">
            <id column="sid" property="id"></id>
            <result column="stitle" property="title"></result>
            <result column="spath" property="path"></result>
        </collection>
    </resultMap>
    <select id="findAllMenu" resultMap="menuMap">
        SELECT mm.*,sm.id as sid ,sm.title as stitle,sm.path as spath FROM mainmenu mm ,submenu sm WHERE mm.id = sm.mid;
    </select>
</mapper>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

Controller层

UserController:里面对应dao层url的crud

@RestController
public class UserController {
    @Autowired
    UserDao userDao;
    @RequestMapping("/alluser")
    public String getUserList(QueryInfo queryInfo){
        //获取最大列编号和当前编号
        int numbers = userDao.getUserCount("%" + queryInfo.getQuery() + "%");
        int pageStart = (queryInfo.getPageNum() - 1) * queryInfo.getPageSize();
        List<User> users = userDao.findAllUser("%" + queryInfo.getQuery() + "%", pageStart, queryInfo.getPageSize());
        HashMap<String, Object> res = new HashMap<>();
        res.put("numbers",numbers);
        res.put("data",users);
        String s = JSON.toJSONString(res);
        return s;
    }
    @RequestMapping("/userState")
    public String updateState(@RequestParam("id")Integer id,@RequestParam("state")Boolean state){
        int i = userDao.updateState(id, state);
        return i>0?"success":"error";
    }

    @RequestMapping("/addUser")
    public String addUser(@RequestBody User user){
        user.setRole("普通用户");
        user.setState(false);
        int i = userDao.addUser(user);
        return i>0?"success":"error";
    }

    @RequestMapping("/deleteUser")
    public String deleteUser(int id){
        int i = userDao.delUser(id);
        return i>0?"success":"error";
    }

    @RequestMapping("/getupdate")
    public String getUpdateUser(int id){
        User user = userDao.findUser(id);
        String u = JSON.toJSONString(user);
        return u;
    }

    @RequestMapping("/edituser")
    public String editUser(@RequestBody User user){
        int i = userDao.updateUser(user);
        return i>0?"success":"error";
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48

LoginController:

@RestController
//@CrossOrigin("http://localhost:8080")
public class LoginController {
    @Autowired
    public UserDao userDao;

    @RequestMapping("/login")
    public String login(@RequestBody User user){
        String flag = "error";
        User us = userDao.getUserByMessage(user.getUsername(), user.getPassword());
        System.out.println("user:"+us);
        HashMap<String,Object> result = new HashMap<>();
        if(us!=null){
            flag = "ok";
        }
        result.put("flag",flag);
        result.put("user",us);
        String json = JSON.toJSONString(result);
        return json;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

MenuController:

@RestController
public class MenuController {
    @Autowired
    MenuDao menuDao;
    @RequestMapping("/menus")
    public String findAllMenus(){
        HashMap<String,Object> data = new HashMap<>();
        List<MainMenu> msins = menuDao.findAllMenu();
        if(msins != null){
            data.put("menus",msins);
            data.put("flag",200);
        }else {
            data.put("flag",404);
        }
        System.out.println(data);
        String s = JSON.toJSONString(data);
        return s;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

附录:前后端交互的时候会产生跨域的问题,要配置跨域的文件,具体信息如下所示:

@Configuration
public class WebConfig implements WebMvcConfigurer {
//    这是要解决跨域问题(全局配置类)
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedMethods("GET","POST","PUT","DELETE","OPTIONS")
                .allowCredentials(true)
                .maxAge(3600);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

最最重要的文件,项目启动类:

@SpringBootApplication
@MapperScan("com.zut.sportplay.dao")
public class SportplayApplication {

    public static void main(String[] args) {
        SpringApplication.run(SportplayApplication.class, args);
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/666797
推荐阅读
相关标签
  

闽ICP备14008679号