栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot+Mybatis-plus+thymeleaf列表的增删改查即分页展示

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot+Mybatis-plus+thymeleaf列表的增删改查即分页展示

首先需要导入相关依赖Mybatis-plus和thymeleaf相关依赖,因为我导入依赖之前出现过依赖之间版本不匹配导致启动报错,这里我把整个pom.xml文件复制过来内容如下。



    4.0.0

    org.example
    testdemo
    1.0-SNAPSHOT
    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.5.RELEASE
         
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            mysql
            mysql-connector-java
            8.0.18
        
        
            com.alibaba
            druid
            1.1.21
        

       

        

        
            org.freemarker
            freemarker
            2.3.30
            test
        


        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        

    


    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



导入依赖后先写Mybatis-plus配置类,首先新建一个package包可以叫做config,然后再config下面新建配置类MybatisConfig内容如下。

@Configuration
public class MybatisConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
        return mybatisPlusInterceptor;
    }

}

这样分页相关的类就可以使用了。
然后我们先创建实体类与数据库相对应,类名UserEntity代码如下。

@Data
@TableName(value = "t_user")
public class User {

    
    @TableId
    private String userId;

    
    private String userName;

    
    private String userAge;

    
    private String userAddr;

    
    private String userSex;

    
    private String userPhone;


    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserAge() {
        return userAge;
    }

    public void setUserAge(String userAge) {
        this.userAge = userAge;
    }

    public String getUserAddr() {
        return userAddr;
    }

    public void setUserAddr(String userAddr) {
        this.userAddr = userAddr;
    }

    public String getUserSex() {
        return userSex;
    }

    public void setUserSex(String userSex) {
        this.userSex = userSex;
    }

    public String getUserPhone() {
        return userPhone;
    }

    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone;
    }
}

当然如果我们使用了lombok插件后就不需要写set和get方法了,然后mybatis-plus需要注意的是,实体类与数据库的主键需要用@TableId注解来绑定一下,否则可能会出现错误。然后实体类的表名用@TableName(value = “t_user”)指定好表名就可以了。接下来创建Mapper接口名叫UserMapper即可。代码如下。

@Mapper
public interface UserMapper extends BaseMapper {
    //根据id删除雨量信息
    @Delete("delete from t_user where user_id=#{id}")
    int deleteUserById(String id);

    @Select("select * from t_user where user_id=#{id}")
    User getUserById(String id);

    @Select("select user_id,user_name,user_age,user_addr,user_sex,user_phone,create_time from t_user order by create_time desc ")
    List selectList();


}

我们的mapper类需要继承一下plus的接口,因为它里面也自带了一些方法不需要我们手写sql,具体使用网上百度即可,我这里列出了我自己使用的sql用注解标注然后拼sql的方式。因为我这里不涉及业务方面就是简单的增删改查和分页所以没有业务逻辑层service层,创建一个接口UserController,然后代码如下。

@Controller
@RequestMapping("api/v1/user")
public class UserController {

    @Autowired
    private UserMapper userMapper;


    
    @RequestMapping("/delete/{id}")
    public String deleteUser(@PathVariable("id") String id) {
        userMapper.deleteUserById(id);
        return "redirect:/api/v1/user/list";
    }

    
    @GetMapping("/updatePage/{id}")
    public String updatePage(Model model, @PathVariable String id) {
        User users = userMapper.getUserById(id);
        model.addAttribute("users", users);
        //表示跳转到modifie,html界面
        return "modifie";
    }

    
    @PostMapping("/update")
    public String updateUser(User user, HttpServletRequest request) {
        System.out.println(user);
        userMapper.updateById(user);
        return "redirect:/api/v1/user/list";
    }

    
    @GetMapping("/insert")
    public String insertOne() {
        return "add.html";
    }

    
    @PostMapping("/add")
    public String saveUser(User user) {
        String userId = UUID.randomUUID().toString().replaceAll("-", "");
        user.setUserId(userId);
        System.out.println(userId);
        userMapper.insert(user);
        //表示重置index.html界面并且跳转到index.html界面
        return "redirect:/api/v1/user/list";
    }

    
    @GetMapping("/list")
    public String getList(Model model, @RequestParam(value = "pn", defaultValue = "1") Integer pn) {
        //分页查询数据,每页显示5条,
        Page userPage = new Page<>(pn, 10);
        //分页查询的结果
        Page page = userMapper.selectPage(userPage, null);
        model.addAttribute("page", page);
        return "login.html";
    }

接下来我们需要画页面了因为用的是thymeleaf所以我们在resources下面创建templates文件夹创建html。我们一共用到了3个页面,首先是login.html内容如下。




    
    用户列表
    

    



姓 名:
年 龄:
住 址:
性 别:
电话号码:

最后是添加的add.html页面内容如下。




    
    添加用户
    
    




姓 名:
年 龄:
住 址:
性 别:
电话号码:

这里面也引用了bootstrap的样式结合thymeleaf一起实现。然后我们最后需要在application.yml里面配置一下相关属性。配置如下。

server:
  port: 8080
spring:
  application:
    name: user
  thymeleaf:
    cache: false
  datasource:
    url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver

接下来我们运行我们的启动类即可。最后页面展示的效果如下图。

页面不是特别美观如果有兴趣可以自己在样式上拓展一下,本人是个小白,也借鉴了别人博客的内容做参考,写这篇博客的目的就是想记录一下而已,希望能帮到大家。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/975222.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号