Spring boot+mybatis+thymeleaf 实现登录注册增删改查功能的示例代码操作成功操作失败,请检查数据重试

这篇文章主要介绍了Spring boot+mybatis+thymeleaf 实现登录注册增删改查功能的示例代码,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

本文重在实现理解,过滤器,业务,逻辑需求,样式请无视。。

项目结构如下

1.idea新建Spring boot项目,在pom中加上thymeleaf和mybatis支持。pom.xml代码如下

4.0.0org.springframework.bootspring-boot-starter-parent2.1.3.RELEASEcom.jztable0.0.1-SNAPSHottableDemo project for Spring Boot1.8org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-starter-thymeleaforg.mybatis.spring.bootmybatis-spring-boot-starter1.3.1MysqLmysql-connector-javaruntimeorg.springframework.bootspring-boot-maven-plugin

2. 在项目resources目录下新建mybatis文件,用于存放mybatis配置文件。 在 application.properties 中配置本地数据源和mybatis配置文件地址, application.properties代码如下

spring.datasource.driverClassName=com.MysqL.cj.jdbc.Driver spring.datasource.url=jdbc:MysqL://localhost:3306/student?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC spring.datasource.username=用户名 spring.datasource.password=密码 spring.jpa.showsql=true mybatis: mybatis.type-aliases-package=com.jz.table.entity mybatis.mapper-locations=mybatis/*.xml

com.MysqL.cj.jdbc.Driver 是 mysql-connector-java 6中的,需要指定时区serverTimezone

2.2在启动类上加上扫描的Dao包

package com.jz.table; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan("com.jz.table.dao") public class TableApplication { public static void main(String[] args) { SpringApplication.run(TableApplication.class, args); } }

3.数据库建两个表admin和userinfo用于登录和操作用

2019.10.3 现在MysqL不能用admin作为表名了,请注意一下

4.开始写代码

entity:实体代码1.Admin实体类package com.jz.table.entity; public class Admin { private Integer id; private String name; private Integer password; private String job; public Admin() { } public Admin(Integer id, String name, Integer password, String job) { this.id = id; this.name = name; this.password = password; this.job = job; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getpassword() { return password; } public void setPassword(Integer password) { this.password = password; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } }2.UserInfo实体类package com.jz.table.entity; public class UserInfo { private Integer id; private String name; private Integer age; private String sex; public UserInfo() { } public UserInfo(Integer id, String name, Integer age, String sex) { this.id = id; this.name = name; this.age = age; this.sex = sex; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }Dao层代码1.AdminDaopackage com.jz.table.dao; import com.jz.table.entity.Admin; public interface AdminDao { //登录判断 Admin login(Admin admin); //注册 int addAdmin(Admin admin); }2.UserDaopackage com.jz.table.dao; import com.jz.table.entity.UserInfo; import java.util.List; public interface UserDao { //查 List findall(); //增 int adduser(UserInfo user); //根据Id查,用于修改页面回显数据 UserInfo findByid(Integer id); //修改 int updateUser(UserInfo user); //删除 int delUser(Integer id); }3.XML文件,因为没有业务逻辑,service省了,controller中直接引入dao1.AdminMapper.xmlselect name,job FROM admin WHERE name = #{name} AND password = #{password} INSERT INTO admin (name,password,job) VALUES (#{name},#{password},#{job});2.UserMapper.xmlselect * from userinfo INSERT INTO userinfo(name,age,sex) VALUES (#{name},#{age},#{sex}) SELECT * FROM userinfo where id = #{id} update userinfo SET name=#{name },age =#{age},sex=#{sex} WHERE id = #{id} DELETE from userinfo WHERE id = #{id}4.页面,在templates文件夹下新建public和user文件夹用来存放公共页面和user操作页面public文件夹下新建成功、失败提示页1.success.html操作成功提示

操作成功

回首页2.false.html操作失败提示

操作失败,请检查数据重试

4.2在templates文件夹下新建login和register页面作为登录注册页面1.login.html首页 请输入姓名请输入密码注册2.register.html账号注册

账号注册

请输入姓名:请输入密码:请确认密码:请选择角色:管理员注册3.controller中代码@Controller public class TestController { @Resource private AdminDao ad; @Resource private UserDao ud; @RequestMapping("/login")//主页 public String index(){ return "login"; } @RequestMapping("/goregister")//去注册页面 public String goregister(){ return "register"; } @RequestMapping("/register")//注册 @ResponseBody public boolean register(Admin admin){ int i = ad.addAdmin(admin); if (i>0){ return true; }else { return false; } } @RequestMapping("/Gologin")//登录获取用户信息存到seccion public String Gologin(Admin admin,HttpServletRequest request,Model model){ Admin aa = ad.login(admin); if (aa==null){ return "public/false"; } HttpSession session = request.getSession(); session.setAttribute("aname",admin.getName()); session.setAttribute("apassword",admin.getpassword()); List userlist = ud.findall(); model.addAttribute("admin",aa); model.addAttribute("alist",userlist); return "user/index"; } @RequestMapping("/index")//从其他页面操作后返回列表页面(重复登录) public String login(Admin admin,Model model,HttpServletRequest request){ HttpSession session = request.getSession(); admin.setName((String) session.getAttribute("aname")); admin.setPassword((Integer) session.getAttribute("apassword")); Admin aa = ad.login(admin); List userlist = ud.findall(); model.addAttribute("admin",aa); model.addAttribute("alist",userlist); return "user/index"; } }4.3user文件夹下新建index,addUser,updateUser页面,作为主页,添加修改页面1.index.html首页 欢迎你 :

人员信息维护

id姓名年龄性别操作修改删除添加2.addUser.html添加用户

我是添加页面

请输入姓名:请输入年龄:请选择性别:男女添加返回3.updateUser.html修改用户

这是修改页面

请输入姓名:请输入年龄:请选择性别:男女修改返回4.controller中代码@RequestMapping("/goadd")//去添加页面 public String goadd(){ return "user/addUser"; } @RequestMapping("/addUser")//添加信息 @ResponseBody public boolean addUser(UserInfo user){ int i = ud.adduser(user); if (i>0){ return true; }else { return false; } } @RequestMapping("/goupdate/{id}")//去修改页面,回显数据 public String goupdate(@PathVariable("id") int id,Model model){ UserInfo user = ud.findByid(id); model.addAttribute("user",user); return "user/updateUser"; } @RequestMapping("/update")//修改 @ResponseBody public boolean updateUser(UserInfo user){ int i = ud.updateUser(user); if (i>0){ return true; }else { return false; } } @RequestMapping("/godel/{id}")//删除 public String delUser(@PathVariable("id") Integer id){ ud.delUser(id); return "public/success"; }5.完整controller代码package com.jz.table.controller; import com.jz.table.dao.AdminDao; import com.jz.table.dao.UserDao; import com.jz.table.entity.Admin; import com.jz.table.entity.UserInfo; 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 org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.util.List; @Controller public class TestController { @Resource private AdminDao ad; @Resource private UserDao ud; @RequestMapping("/login")//主页 public String index(){ return "login"; } @RequestMapping("/goregister")//去注册页面 public String goregister(){ return "register"; } @RequestMapping("/register")//注册 @ResponseBody public boolean register(Admin admin){ int i = ad.addAdmin(admin); if (i>0){ return true; }else { return false; } } @RequestMapping("/Gologin")//登录获取用户信息存到seccion public String Gologin(Admin admin,HttpServletRequest request,Model model){ Admin aa = ad.login(admin); if (aa==null){ return "public/false"; } HttpSession session = request.getSession(); session.setAttribute("aname",admin.getName()); session.setAttribute("apassword",admin.getpassword()); List userlist = ud.findall(); model.addAttribute("admin",aa); model.addAttribute("alist",userlist); return "user/index"; } @RequestMapping("/index")//从其他页面操作后返回列表页面(重复登录) public String login(Admin admin,Model model,HttpServletRequest request){ HttpSession session = request.getSession(); admin.setName((String) session.getAttribute("aname")); admin.setPassword((Integer) session.getAttribute("apassword")); Admin aa = ad.login(admin); List userlist = ud.findall(); model.addAttribute("admin",aa); model.addAttribute("alist",userlist); return "user/index"; } @RequestMapping("/goadd")//去添加页面 public String goadd(){ return "user/addUser"; } @RequestMapping("/addUser")//添加信息 @ResponseBody public boolean addUser(UserInfo user){ int i = ud.adduser(user); if (i>0){ return true; }else { return false; } } @RequestMapping("/goupdate/{id}")//去修改页面,回显数据 public String goupdate(@PathVariable("id") int id,Model model){ UserInfo user = ud.findByid(id); model.addAttribute("user",user); return "user/updateUser"; } @RequestMapping("/update")//修改 @ResponseBody public boolean updateUser(UserInfo user){ int i = ud.updateUser(user); if (i>0){ return true; }else { return false; } } @RequestMapping("/godel/{id}")//删除 public String delUser(@PathVariable("id") Integer id){ ud.delUser(id); return "public/success"; } }效果如图

到此这篇关于Spring boot+mybatis+thymeleaf 实现登录注册增删改查功能的示例代码文章就介绍到这了,更多相关Spring boot mybatis thymeleaf 登录注册增删改查内容搜索编程之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程之家!

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...