SpringBoot+SpringMVC +Mybatis+Thymeleaf实现简单的单表操作

小白练习springboot遇到的问题:
1、无法访问底层数据库
2、无法找到mapper.xml
3、TimeZone的问题
以上问题针对小白的mybatis和MySQL数据库8.0,如下根据实现CRUD案例给出正确解决方案:
由于小白使用spring插件,操作会方便些,以下为整合操作步骤:
一、创建项目目录
1、新建如下项目
在这里插入图片描述
2、根据需要填写
在这里插入图片描述
3、
在这里插入图片描述
点击next-----finish则spring boot项目建好。
pom.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

org.springframework.boot
spring-boot-starter-parent
2.1.3.RELEASE


com.example
demo
0.0.1-SNAPSHOT
springboot-springmvc-mybatis
Demo project for Spring Boot

<properties>
	<java.version>1.8</java.version>
</properties>

<dependencies>
    <!-- thymeleaf视图支持html-->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-thymeleaf</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
	<dependency>
		<groupId>org.mybatis.spring.boot</groupId>
		<artifactId>mybatis-spring-boot-starter</artifactId>
		<version>2.0.0</version>
	</dependency>

	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<scope>runtime</scope>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
	<!-- 连接池 -->
	<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
	<dependency>
	    <groupId>com.alibaba</groupId>
	    <artifactId>druid</artifactId>
	    <version>1.1.10</version>
	</dependency>

	
</dependencies>

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>
目录结构如下:

在这里插入图片描述

根据需要填写 application.properties

在这里插入图片描述
#配置数据库信息(使用MySQL8.0驱动)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/boot?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=root
#连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

#配置mybatis实体类的别名
mybatis.type-aliases-package=cn.wxm.pojo
#扫描mybatis的配置文件
mybatis.mapper-locations=classpath:mybatis/*Mapper.xml
mybatis.config-location=classpath:mybatis/config/sqlMapConfig.xml

resource下新建文件夹 mybatis,在其下面创建Mapper映射文件:
如下:

<?xml version="1.0" encoding="UTF-8" ?>
<select id="findAll" resultType="user">
	select * from user
</select>

<insert id="insertUser" parameterType="user">
	insert into user(name,age) values(#{name},#{age})
</insert>

<select id="findUserById" resultType="user" parameterType="int">
	select id,name,age from user where id=#{value}
</select>

<update id="updateUser" parameterType="user">
	update user set name=#{name},age=#{age} where id=#{id}
</update>

<delete id="deleteUserById" parameterType="user">
	delete from user where id=#{id}
</delete>

根据目录创建相应文件:
建立mapper接口
package cn.wxm.mapper;

import java.util.List;

import cn.wxm.pojo.User;

public interface UserMapper {

/**
 * 添加用户
 * @param user
 */
 void insertUser(User user);
 
 /**
  * 查询所有用户
  * @return
  */
 List<User> findAll();
 
 /**
  * 根据id查询用户
  * @param id
  * @return
  */
 User findUserById(Integer id); 
 
 /**
  * 更新用户
  * @param user
  */
 void updateUser(User user);
 
 /**
  * 删除用户
  * @param user
  * @return
  */
 int deleteUserById(User user);	 

}

在service包中也创建上述接口
service实现如下:

package cn.wxm.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.wxm.mapper.UserMapper;
import cn.wxm.pojo.User;
import cn.wxm.service.UserService;

@Service //业务层接口
@Transactional//所有方法都受事务控制
public class UserServiceImpl implements UserService {

@Autowired
private UserMapper userMapper;

@Override
public void insertUser(User user) {
	userMapper.insertUser(user);

}

@Override
public List<User> findAll() {
	List<User> list = userMapper.findAll();
	return list;
}

@Override
public User findUserById(Integer id) {
	User user = this.userMapper.findUserById(id);
	return user;
}

@Override
public void updateUser(User user) {
	this.userMapper.updateUser(user);
	
}

@Override
public int deleteUserById(User user) {
	return this.userMapper.deleteUserById(user);
}

}

控制器方法如下:
package cn.wxm.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.wxm.pojo.User;
import cn.wxm.service.UserService;

@Controller
@RequestMapping("/users")
public class UserController {

@Autowired
private UserService userService;

/**
 * 跳转到指定页面
 * @param page
 * @return
 */
@RequestMapping("/{page}")
public String showPage(@PathVariable("page") String page){
	return page;
}

/**
 * 添加用户
 * @param user
 * @return
 */
@RequestMapping("/addUser")
public String addUser(User user){
	this.userService.insertUser(user);
	 return "redirect:/users/find"; //重定向
}

/**
 * 查询所有用户
 * @param model
 * @return
 */
@RequestMapping("find")
public String findAll(Model model){
	List<User> list = this.userService.findAll();
	model.addAttribute("list", list);
	return "list";
}

@RequestMapping("findUserById")
public String findById(Integer id,Model model){
	User user = this.userService.findUserById(id);
	model.addAttribute("user", user);
	return "update";
}

@RequestMapping("editUser")
public String updateUser(User user){
	this.userService.updateUser(user);
	 return "redirect:/users/find";
}

@RequestMapping("deleteUserById")
public String deleteUserById(User user){
	 int num=this.userService.deleteUserById(user);
	 if(num>0){
		 return "redirect:/users/find";
	 }else{
		 return "error";
	 }
}

}

简单页面如下:
1、插入数据:input.html
在这里插入图片描述

2、查看用户列表:list.html
在这里插入图片描述
3、回显用户信息
在这里插入图片描述
运行效果:
在这里插入图片描述

添加用户:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190223145159903.png

在这里插入图片描述

在这里插入图片描述

以上为小白整理,如果哪里有问题还希望各位权威不吝批评

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot+SpringMVC+Mybatis+Thymeleaf+LayUI模板引擎可以用于开发Web应用程序,实现编辑和增加功能。下面是一个示例代码: 1. 编辑功能: ```java @Controller @RequestMapping("/edit") public class EditController { @Autowired private UserService userService; @GetMapping("/{id}") public String editUser(@PathVariable("id") int id, Model model) { User user = userService.getUserById(id); model.addAttribute("user", user); return "edit"; } @PostMapping("/{id}") public String saveUser(@PathVariable("id") int id, @ModelAttribute User user) { userService.updateUser(user); return "redirect:/user/" + id; } } ``` 2. 增加功能: ```java @Controller @RequestMapping("/add") public class AddController { @Autowired private UserService userService; @GetMapping public String addUser(Model model) { model.addAttribute("user", new User()); return "add"; } @PostMapping public String saveUser(@ModelAttribute User user) { userService.addUser(user); return "redirect:/user"; } } ``` 在Thymeleaf模板中,可以使用LayUI模板引擎来实现页面的美化和交互效果。例如,编辑页面的模板代码如下: ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Edit User</title> <link rel="stylesheet" th:href="@{/layui/css/layui.css}"> </head> <body> <form class="layui-form" th:object="${user}" th:action="@{/edit/{id}(id=${user.id})}" method="post"> <div class="layui-form-item"> <label class="layui-form-label">Name</label> <div class="layui-input-block"> <input type="text" th:field="*{name}" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">Age</label> <div class="layui-input-block"> <input type="text" th:field="*{age}" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="formDemo">Save</button> </div> </div> </form> <script src="/layui/layui.js"></script> </body> </html> ``` 在上述代码中,使用了Thymeleaf的表达式语法来绑定表单数据和提交地址。同时,引入了LayUI的样式和脚本文件,实现表单的美化和提交按钮的交互效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值