首先需要导入相关依赖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
接下来我们运行我们的启动类即可。最后页面展示的效果如下图。
页面不是特别美观如果有兴趣可以自己在样式上拓展一下,本人是个小白,也借鉴了别人博客的内容做参考,写这篇博客的目的就是想记录一下而已,希望能帮到大家。



