
文章目录
一.使用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 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);
}
七.编写service层
----编写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 List listUser();
// 根据用户名来查询用户 并分页展示
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 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 ; //判断是否成功添加用户
}
}
八.编写controller层
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 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:/";
}
}
}
}
九.编写UserMapper.xml映射文件
----对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条)