Spring boot+mybatis+thymeleaf 实现登录注册增删改查功能的示例代码

网友投稿 291 2023-04-02

Spring boot+mybatis+thymeleaf 实现登录注册增删改查功能的示例代码

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

项目结构如下

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

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.1.3.RELEASE

com.jz

table

0.0.1-SNAPSHOT

table

Demo project for Spring Boot

1.8

org.springframework.boot&lhttp://t;/groupId>

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-starter-thymeleaf

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.1

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-boot-maven-plugin

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.1.3.RELEASE

com.jz

table

0.0.1-SNAPSHOT

table

Demo project for Spring Boot

1.8

org.springframework.boot&lhttp://t;/groupId>

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-starter-thymeleaf

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.1

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-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.AdminDao

package com.jz.table.dao;

import com.jz.table.entity.Admin;

public interface AdminDao {

//登录判断

Admin login(Admin admin);

//注册

int addAdmin(Admin admin);

}

2.UserDao

package 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中直接引入dao

1.AdminMapper.xml

select name,job FROM admin WHERE name = #{name} AND password = #{password}

INSERT INTO admin (name,password,job) VALUES (#{name},#{password},#{job});

2.UserMapper.xml

select * 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



请输入姓名:

请输入年龄:

请选择性别:

<br>

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";

}

}

效果如图

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈IDEA中Maven配置问题全解决
下一篇:数据应用平台模型计算开发(数据模型开发工具)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~