文章目录
一.使用IDEA创建一个spring项目
二.建立项目结构
三.创建数据库
四.导入pom依赖
五.编写pojo实体类
六.编写dao层
七.编写service层
八.编写controller层
九.编写UserMapper.xml映射文件
.十.编写yml配置信息
十一.编写前端页面
十二.测试
一.使用IDEA创建一个spring项目
二.建立项目结构
dao层用来编写sql方法的接口,service层的方法接口和方法实现类,controll控制层。pojo实体类,其中query包中存储和分页相关的实体类。User类存储数据表的实体类。
在resources目录下创建UserMapper.xml编写sql方法的具体代码。templates下创建editUser.html为数据编辑页面,index.html为主页即数据展示页面。创建application.yml编写连接配置信息。
三.创建数据库----我们创建一个mybatis数据库,在数据库下创建user表,包含id,name,pwd属性。我这里用的是Navicat可视化Mysql工具直接创建。
----也可以通过sql语句cmd中创建。创建好数据库mybatis后,输入创建user代码。在idea中可以使用database测试和数据库的连通性。
CREATE TABLE `user` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(55) NOT NULL, `pwd` varchar(55) NOT NULL, PRIMARY KEY (`id`) )四.导入pom依赖
----如果依赖爆红说明本地没有这个依赖,需要去MAVEN仓库下载依赖手动导入,手动导入依赖方法如何手动在pom导入依赖,解决Dependency not found问题_阿弈哥的博客-CSDN博客
五.编写pojo实体类4.0.0 org.springframework.boot spring-boot-starter-parent2.6.3 wuhobin springboot-mybatis0.0.1-SNAPSHOT springboot-mybatis Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-thymeleaforg.springframework.boot spring-boot-starter-weborg.mybatis.spring.boot mybatis-spring-boot-starter2.1.3 mysql mysql-connector-javacom.alibaba druid1.2.8 org.projectlombok lombokcom.github.pagehelper pagehelper-spring-boot-starter1.4.1 org.springframework.boot spring-boot-devtoolsruntime true org.springframework.boot spring-boot-starter-testtest org.springframework.boot spring-boot-maven-plugin
----创建query包下,在包下编写UserQuery实体类,用于存储分页的相关实体属性
package wuhobin.pojo.query; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data //使用data注解省去set和get方法 @AllArgsConstructor @NoArgsConstructor public class UserQuery { private Integer pageNum = 1; // 当前的页码 private Integer pageSize = 2; //每一页所显示的数量 private String name; // 根据用户查询 }
----编写User实体类,用于存储数据表的字段属性
package wuhobin.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data //使用data注解省去get与set方法 @AllArgsConstructor //自动构建有参构造方法 @NoArgsConstructor public class User { private Integer id; private String name; private String pwd; private String perm; }六.编写dao层
----UserDao编写对数据库 *** 作需要用到的方法接口,需要添加@Mapper注解,才能在UserMapper.xml对接口方法进行sql语句具体编写
package wuhobin.dao; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; import wuhobin.pojo.User; import wuhobin.pojo.query.UserQuery; import java.util.List; @Mapper // 告诉springboot这是一个mybatis的mapepr类 @Repository // 将userdao交由spring容齐管理 public interface UserDao { // 查询所有用户 public List七.编写service层listUser(); // 根据id查询用户 public User queryUserById(Integer id); // 根据用户名来查询用户 并分页展示 public List listUserByName(UserQuery userQuery); //根据id删除用户 public int deleteUserById(Integer id); // 修改用户 public int updateUser(User user); // 新增用户 public int addUser(User user); }
----编写UserService方法接口
package wuhobin.service; import com.github.pagehelper.PageInfo; import wuhobin.pojo.User; import wuhobin.pojo.query.UserQuery; import java.util.List; public interface UserService { // 查询所有用户 public ListlistUser(); // 根据用户名来查询用户 并分页展示 public PageInfo listUserByName(UserQuery userQuery); //根据id删除用户 public boolean deleteUserById(Integer id); // 根据id查询用户 public User queryUserById(Integer id); // 修改用户 public boolean updateUser(User user); // 新增用户 public boolean addUser(User user); }
----编写UserServiceImpl方法的实现类
package wuhobin.service; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import wuhobin.dao.UserDao; import wuhobin.pojo.User; import wuhobin.pojo.query.UserQuery; import java.util.List; @Service // 交由spring容齐管理 public class UserServiceImpl implements UserService{ @Autowired private UserDao userDao; @Override public List八.编写controller层listUser() { return userDao.listUser(); } @Override public PageInfo listUserByName(UserQuery userQuery) { PageHelper.startPage(userQuery.getPageNum(),userQuery.getPageSize()); return new PageInfo (userDao.listUserByName(userQuery)); } @Override public boolean deleteUserById(Integer id) { int i = userDao.deleteUserById(id); if(i > 0){ //判断是否成功删除用户 return true; }else { return false; } } @Override public User queryUserById(Integer id) { return userDao.queryUserById(id); } @Override public boolean updateUser(User user) { int i = userDao.updateUser(user); if(i > 0){ //判断是否成功编辑用户 return true; }else { return false; } } @Override public boolean addUser(User user) { return userDao.addUser(user) > 0 ? true : false ; //判断是否成功添加用户 } }
package wuhobin.controller; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import wuhobin.pojo.User; import wuhobin.pojo.query.UserQuery; import wuhobin.service.UserService; @Controller public class UserController { @Autowired //自动注入 private UserService userService; @GetMapping("/") //进入首页,首页展示数据库数据 public String index(Model model, UserQuery userQuery){ PageInfo九.编写UserMapper.xml映射文件userPageInfo = userService.listUserByName(userQuery); model.addAttribute("page",userPageInfo); return "index"; } @PostMapping("/") public String listUserByName(Model model,UserQuery userQuery){ PageInfo userPageInfo = userService.listUserByName(userQuery); model.addAttribute("page",userPageInfo); return "index"; } @GetMapping("/delete/{id}") //根据id删除数据,并在前端展示删除结果反馈 public String delete(@PathVariable("id") Integer id, RedirectAttributes attributes){ boolean b = userService.deleteUserById(id); if(b){ attributes.addFlashAttribute("message","删除用户成功"); return "redirect:/"; }else { attributes.addFlashAttribute("message","删除用户失败"); return "redirect:/"; } } @GetMapping("/edit/{id}") //根据id进入数据编辑界面editUser public String toEdit(@PathVariable Integer id,Model model){ model.addAttribute("user",userService.queryUserById(id)); return "editUser"; } @PostMapping("/edit") //编辑修改数据信息,并在前端展示修改结果是否成功反馈 public String edit(User user,RedirectAttributes attributes){ UserQuery userQuery = new UserQuery(); Integer id = user.getId(); userQuery.setName(user.getName()); PageInfo userPageInfo = userService.listUserByName(userQuery); if(id != null){ if(userPageInfo.getSize() == 0){ boolean b = userService.updateUser(user); if(b){ attributes.addFlashAttribute("message"," 更新用户成功"); return "redirect:/"; }else { attributes.addFlashAttribute("message","更新用户失败"); return "redirect:/"; } }else { attributes.addFlashAttribute("message","该用户名已存在"); return "redirect:/edit/"+user.getId(); } }else { if(userPageInfo.getSize() == 0){ boolean b = userService.addUser(user); if(b){ attributes.addFlashAttribute("message"," 新增用户成功"); return "redirect:/"; }else { attributes.addFlashAttribute("message","新增用户失败"); return "redirect:/"; } }else { attributes.addFlashAttribute("message","该用户名已存在"); return "redirect:/"; } } } }
----对UserDao接口中的方法编写具体sql方法
.十.编写yml配置信息
server: port: 8080 # 数据库数据源 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource username: root # 改为自己的数据库名称 password: 123456 #改为自己的数据库密码 url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT driver-class-name: com.mysql.cj.jdbc.Driver mybatis: type-aliases-package: wuhobin.pojo # 别名 mapper-locations: classpath:/mybatis/*.xml # xml文件 logging: file: name: log/log.log level: root: info wuhobin: debug十一.编写前端页面
----将前端页面放置在templates包下,下面附上代码
----editUser.html
修改用户 提示:
----index.html
十二.测试首页 新增id 姓名 密码 *** 作 James 24 Engineer 编辑 删除 上一页 第 提示:2 页/共4 页 共29 条 下一页
----在浏览器中输入locahost://8080,结果如下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)