• 从零开始搭建java web springboot Eclipse MyBatis jsp mysql开发环境


    从百度云盘下载本博客的代码,https://pan.baidu.com/s/1ztOr7FnypSv-0FX_5EMIlw,提取码:soft

    1 第一步软件安装

    1.1 下载并安装Eclipse

    前往 Eclipse下载并安装的博客 https://blog.csdn.net/u011159350/article/details/113704086
    本博客使用的Eclipse版本是Version: 2022-12 (4.26.0),Build id: 20221201-1913
    其他版本也行

    1.2 下载并安装Java

    前往 Java下载并安装的博客 https://blog.csdn.net/u011159350/article/details/113703862
    本博客使用的Java版本是15.0.1
    其他Java也行

    1.3 下载并安装Apache Maven

    前往 Apache Maven下载并安装的博客 https://blog.csdn.net/u011159350/article/details/103796714

    1.4 下载并安装MySQL

    前往 MySQL下载并安装的博客 https://blog.csdn.net/u011159350/article/details/113619926

    2 创建所需要的表和数据

    打开MySQL附带的软件MySQL WorkBench
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

    下面是上面图片里要执行的SQL内容

    CREATE TABLE `mydb`.`s001` (
      `LOGIN_USERID` VARCHAR(20) NOT NULL COMMENT '登陆用户ID',
      `LOGIN_PASSWORD` VARCHAR(20) NOT NULL COMMENT '登陆密码',
      `USER_NAME` VARCHAR(50) NULL COMMENT '用户名表示用',
      `EMAIL` VARCHAR(30) NULL COMMENT '邮件地址',
      `BIRTH_YMD` VARCHAR(8) NULL COMMENT '出生年月日',
      `TELPHONE_NUMBER` VARCHAR(11) NULL COMMENT '电话号码',
      PRIMARY KEY (`LOGIN_USERID`))
    COMMENT = '用户情报表';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    在这里插入图片描述
    在下图添加数据,然后点击Apply按钮
    在这里插入图片描述
    在这里插入图片描述
    点击finish,就添加成功数据了。
    在这里插入图片描述

    3 创建Maven 工程、修改jdk

    在这里插入图片描述
    在这里插入图片描述
    Group Id:com.study
    Artifact Id:StudySpringBoot
    在这里插入图片描述
    下面的步骤是设置jdk,因为我是设定过后重新截图,所以会看起来设定后没有变化。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    选择 J2SE-15(jdk-15.0.1)
    在这里插入图片描述

    4 通过pom.xml获取所需要的jar包

    双击打开下面的pom.xml文件
    在这里插入图片描述

    把pom.xml里的内容全部删除,然后下面的文件复制到pom.xml文件中

    
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0modelVersion>
    	<artifactId>studyartifactId>
    	<groupId>com.studygroupId>
    	<version>0.0.1-SNAPSHOTversion>
    	<parent>
    		
    		<groupId>org.springframework.bootgroupId>
    		<artifactId>spring-boot-starter-parentartifactId>
    		<version>1.5.9.RELEASEversion>
    		<relativePath />
    	parent>
    	<properties>
    		
    		<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    		<project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
    		
    		<java.version>15.0java.version>
    		<maven.compiler.source>1.8maven.compiler.source>
    		<maven.compiler.target>1.8maven.compiler.target>
    		<fastjson.version>1.2.24fastjson.version>
    	properties>
    	<dependencies>
    		
    		<dependency>
    			<groupId>org.springframework.bootgroupId>
    			<artifactId>spring-boot-starter-webartifactId>
    		dependency>
    		
    		<dependency>
    			<groupId>org.springframework.bootgroupId>
    			<artifactId>spring-boot-starterartifactId>
    		dependency>
    		<dependency>
    			<groupId>org.springframework.bootgroupId>
    			<artifactId>spring-boot-starter-testartifactId>
    		dependency>
    		
    		<dependency>
    			<groupId>org.apache.tomcat.embedgroupId>
    			<artifactId>tomcat-embed-jasperartifactId>
    		dependency>
    		
    		<dependency>
    			<groupId>org.mybatis.spring.bootgroupId>
    			<artifactId>mybatis-spring-boot-starterartifactId>
    			<version>1.3.1version>
    		dependency>
    		<dependency>
    			<groupId>mysqlgroupId>
    			<artifactId>mysql-connector-javaartifactId>
    		dependency>
    	dependencies>
    	<build>
    		<plugins>
    			
    			
    			<plugin>
    				<groupId>org.springframework.bootgroupId>
    				<artifactId>spring-boot-maven-pluginartifactId>
    			plugin>
    			
    			<plugin>
    				<groupId>org.mybatis.generatorgroupId>
    				<artifactId>mybatis-generator-maven-pluginartifactId>
    				<version>1.3.1version>
    				<configuration>
    					<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xmlconfigurationFile>
    					<overwrite>trueoverwrite>
    					<verbose>trueverbose>
    				configuration>
    			plugin>
    		plugins>
    	build>
    project>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82

    在这里插入图片描述

    5 安装Eclipse的MyBatis插件

    按照下图的操作,进入Eclipse商店
    在这里插入图片描述
    输入MyBatis,然后检索
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6 创建文件夹以及jsp文件

    在这里插入图片描述
    webapp/WEB-INF/jsp/amc01.jsp的内容如下

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
        <base href="http://localhost:8090/myweb/" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
        <title>个人网站管理系统title>
        <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
    head>
    <body>
        <form action="amc01/login" name="amc01from" method="post">
            <label for="login_userid">登陆用户名label>
            <input type="text" class="form-control" id="login_userid" name="login_userid" placeholder="Username">
            <br>
            <label for="login_password">登陆密码label>
            <input type="password" class="form-control" id="login_password" name="login_password" placeholder="Password">
            <button type="submit" class="btn btn-default">Submitbutton>
        form>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    webapp/WEB-INF/jsp/amc02.jsp的内容如下

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
        <base href="http://localhost:8090/myweb/" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
        <title>个人网站管理系统title>
        <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
    head>
    <body>
        账号登录失败!<br>
        <a href="amc01">重新登录a>
    body>
    html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    webapp/WEB-INF/jsp/index.jsp的内容如下
    下面的标签没有起作用,使得两个If标签内的值都表示了出来。等研究明白了在来修改。

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
        <base href="http://localhost:8090/myweb/" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
        <title>个人网站管理系统title>
        <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
    head>
    <body>
        
        你的昵称是  ${userinfo.user_name}<br>
        你的邮件是  ${userinfo.email}<br>
        你的生日是  ${userinfo.birth_ymd}<br>
        你的电话号码是  ${userinfo.telphone_number}<br>
        c:if>
        
        <a href="amc01">登录a>
        c:if>
    body>
    html>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    7 创建下面各种java类文件、xml、properties文件

    在这里插入图片描述

    7.1 com.study.WebAppMainApplication.java

    创建包:com.study,然后在该包下面创建WebAppMainApplication.java的内容如下,这是启动整个web应用的程序

    package com.study;
    			
    import org.springframework.boot.SpringApplication;					
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * 启动类
     *
     */
    @SpringBootApplication						
    public class WebAppMainApplication {
    
    	/**
    	 * Web启动主方法
    	 * @param args
    	 */
    	public static void main(String[] args) {					
    		// TODO Auto-generated method stub			
    		SpringApplication.run(WebAppMainApplication.class, args);
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    7.2 com.study.action.AMC01LoginAction .java

    创建包:com.study.action,然后在该包下面创建AMC01LoginAction .java的内容如下,这是Service类调用的程序,负责实现更加具体的业务逻辑,service类通过调用各种Action类,实现一个完整的复杂的业务逻辑。

    package com.study.action;
    
    public class AMC01LoginAction {
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    7.3 com.study.controller.amc01.AMC01Controller .java

    创建包:com.study.controller.amc01,然后在该包下面创建AMC01Controller .java的内容如下,这是点击jsp画面后,第一个跳转到的程序

    package com.study.controller.amc01;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.ModelAttribute;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    
    import com.study.dto.AMC01InputDto;
    import com.study.dto.AMC01OutputDto;
    import com.study.service.AMC01Service;
    
    @Controller
    public class AMC01Controller {
    
    	/** 画面初始化事件 */
    	private static final String EVT_INIT= "/";
    
    	/** 画面跳转事件 */
    	private static final String EVT_AMC01 = "amc01";
    
    	/** 画面登录事件 */
    	private static final String EVT_LOGIN = "amc01/login";
    
    	@Autowired
    	private AMC01Service amc01Service;
    	
    	/**
    	 * 画面的初始化事件
    	 * @param m
    	 * @return
    	 */
    	@RequestMapping(EVT_INIT)
    	public String init(Model m) {
    		AMC01Form amc01from = new AMC01Form();
    		m.addAttribute("userinfo", amc01from);
    		// 视图重定向index.jsp
    		return "index";
    	}
    
    	/**
    	 * 跳转到amc01.jsp
    	 * @return
    	 */
    	@RequestMapping(EVT_AMC01)
    	public String Amc01Jsp() {
    		// 视图重定向amc01.jsp
    		return "amc01";
    	}
    
    	/**
    	 * 画面的登录事件
    	 * @param m
    	 * @param scmform
    	 * @return
    	 */
    	@RequestMapping(value = EVT_LOGIN, method = RequestMethod.POST)
    	public String login(Model m, @ModelAttribute("amc01from") AMC01Form amc01from) {
    
    		AMC01InputDto amc01InputDto = new AMC01InputDto();
    		amc01InputDto.setLogin_userid(amc01from.getLogin_userid());
    		amc01InputDto.setLogin_password(amc01from.getLogin_password());
    		AMC01OutputDto amc01OutputDto = amc01Service.excute(amc01InputDto);
    
    		if(amc01OutputDto.getUser_name() == null) {
    			// 登录失败
    			return "amc02";
    		}else {
    			// 登录成功跳转
    			AMC01Form userinfo = new AMC01Form();
    			userinfo.setUser_name(amc01OutputDto.getUser_name());
    			userinfo.setEmail(amc01OutputDto.getEmail());
    			userinfo.setBirth_ymd(amc01OutputDto.getBirth_ymd());
    			userinfo.setTelphone_number(amc01OutputDto.getTelphone_number());
    
    			m.addAttribute("userinfo", userinfo);
    			// 视图重定向index.jsp
    			return "index";
    		}
    	}
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83

    7.4 com.study.controller.amc01.AMC01Form .java

    创建包:com.study.controller.amc01,然后在该包下面创建AMC01Form .java的内容如下,从Jsp向controller类传入值和从controller类向Jsp传出值的时候,需要把值存在这个form类里

    package com.study.controller.amc01;
    
    public class AMC01Form {
    	/**
    	 * 登陆用户ID
    	 */
    	private String login_userid;
    
    	/**
    	 * 登陆密码
    	 */
    	private String login_password;
    	
    	/**
    	 * 用户名表示用
    	 */
    	private String user_name;
    	
    	/**
    	 * 邮件地址
    	 */
    	private String email;
    	
    	/**
    	 * 出生年月日
    	 */
    	private String birth_ymd;
    	
    	/**
    	 * 电话号码
    	 */
    	private String telphone_number;
    
    	/**
    	 * 取得登陆用户ID
    	 * @return 登陆用户ID
    	 */
    	public String getLogin_userid() {
    		return login_userid;
    	}
    	
    	/**
    	 * 设定登陆用户ID
    	 * @param login_userid 登陆用户ID
    	 */
    	public void setLogin_userid(String login_userid) {
    		this.login_userid = login_userid;
    	}
    
    	/**
    	 * 取得登陆密码
    	 * @return 登陆密码
    	 */
    	public String getLogin_password() {
    		return login_password;
    	}
    
    	/**
    	 * 设定登陆密码
    	 * @param login_password 登陆密码
    	 */
    	public void setLogin_password(String login_password) {
    		this.login_password = login_password;
    	}
    
    	/**
    	 * 取得用户名表示用
    	 * @return 用户名表示用
    	 */
    	public String getUser_name() {
    		return user_name;
    	}
    
    	/**
    	 * 设定用户名表示用
    	 * @param user_name 用户名表示用
    	 */
    	public void setUser_name(String user_name) {
    		this.user_name = user_name;
    	}
    
    	/**
    	 * 取得邮件地址
    	 * @return 邮件地址
    	 */
    	public String getEmail() {
    		return email;
    	}
    
    	/**
    	 * 设定邮件地址
    	 * @param email 邮件地址
    	 */
    	public void setEmail(String email) {
    		this.email = email;
    	}
    
    	/**
    	 * 取得出生年月日
    	 * @return 出生年月日
    	 */
    	public String getBirth_ymd() {
    		return birth_ymd;
    	}
    
    	/**
    	 * 设定出生年月日
    	 * @param birth_ymd 出生年月日
    	 */
    	public void setBirth_ymd(String birth_ymd) {
    		this.birth_ymd = birth_ymd;
    	}
    
    	/**
    	 * 取得电话号码
    	 * @return 电话号码
    	 */
    	public String getTelphone_number() {
    		return telphone_number;
    	}
    
    	/**
    	 * 设定电话号码
    	 * @param telphone_number 电话号码
    	 */
    	public void setTelphone_number(String telphone_number) {
    		this.telphone_number = telphone_number;
    	}
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130

    7.5 com.study.dto.AMC01InputDto .java

    创建包:com.study.dto,然后在该包下面创建AMC01InputDto .java的内容如下,从controller类向service类传入值的时候、需要这个类保存值,一般命名为XXXInputDto

    package com.study.dto;
    
    public class AMC01InputDto {
    	/**
    	 * 登陆用户ID
    	 */
    	private String login_userid;
    
    	/**
    	 * 登陆密码
    	 */
    	private String login_password;
    
    	/**
    	 * 取得登陆用户ID
    	 * @return 登陆用户ID
    	 */
    	public String getLogin_userid() {
    		return login_userid;
    	}
    	
    	/**
    	 * 设定登陆用户ID
    	 * @param login_userid 登陆用户ID
    	 */
    	public void setLogin_userid(String login_userid) {
    		this.login_userid = login_userid;
    	}
    
    	/**
    	 * 取得登陆密码
    	 * @return 登陆密码
    	 */
    	public String getLogin_password() {
    		return login_password;
    	}
    
    	/**
    	 * 设定登陆密码
    	 * @param login_password 登陆密码
    	 */
    	public void setLogin_password(String login_password) {
    		this.login_password = login_password;
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    7.6 com.study.dto.AMC01OutputDto .java

    创建包:com.study.dto,然后在该包下面创建AMC01OutputDto .java的内容如下,从service类向controller类传出值的时候、需要这个类保存值,一般命名为XXXOutputDto

    package com.study.dto;
    
    public class AMC01OutputDto {
    	/**
    	 * 用户名表示用
    	 */
    	private String user_name;
    	
    	/**
    	 * 邮件地址
    	 */
    	private String email;
    	
    	/**
    	 * 出生年月日
    	 */
    	private String birth_ymd;
    	
    	/**
    	 * 电话号码
    	 */
    	private String telphone_number;
    
    	/**
    	 * 取得用户名表示用
    	 * @return 用户名表示用
    	 */
    	public String getUser_name() {
    		return user_name;
    	}
    
    	/**
    	 * 设定用户名表示用
    	 * @param user_name 用户名表示用
    	 */
    	public void setUser_name(String user_name) {
    		this.user_name = user_name;
    	}
    
    	/**
    	 * 取得邮件地址
    	 * @return 邮件地址
    	 */
    	public String getEmail() {
    		return email;
    	}
    
    	/**
    	 * 设定邮件地址
    	 * @param email 邮件地址
    	 */
    	public void setEmail(String email) {
    		this.email = email;
    	}
    
    	/**
    	 * 取得出生年月日
    	 * @return 出生年月日
    	 */
    	public String getBirth_ymd() {
    		return birth_ymd;
    	}
    
    	/**
    	 * 设定出生年月日
    	 * @param birth_ymd 出生年月日
    	 */
    	public void setBirth_ymd(String birth_ymd) {
    		this.birth_ymd = birth_ymd;
    	}
    
    	/**
    	 * 取得电话号码
    	 * @return 电话号码
    	 */
    	public String getTelphone_number() {
    		return telphone_number;
    	}
    
    	/**
    	 * 设定电话号码
    	 * @param telphone_number 电话号码
    	 */
    	public void setTelphone_number(String telphone_number) {
    		this.telphone_number = telphone_number;
    	}
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89

    7.7 com.study.dto.AMC01LoginUserInfoDto .java

    创建包:com.study.dto,然后在该包下面创建AMC01LoginUserInfoDto .java的内容如下,这是普通的dto类,这里我用来存储repository类从db中检索后返回来的值

    package com.study.dto;
    
    public class AMC01LoginUserInfoDto {
    	/**
    	 * 用户名表示用
    	 */
    	private String user_name;
    	
    	/**
    	 * 邮件地址
    	 */
    	private String email;
    	
    	/**
    	 * 出生年月日
    	 */
    	private String birth_ymd;
    	
    	/**
    	 * 电话号码
    	 */
    	private String telphone_number;
    
    	/**
    	 * 取得用户名表示用
    	 * @return 用户名表示用
    	 */
    	public String getUser_name() {
    		return user_name;
    	}
    
    	/**
    	 * 设定用户名表示用
    	 * @param user_name 用户名表示用
    	 */
    	public void setUser_name(String user_name) {
    		this.user_name = user_name;
    	}
    
    	/**
    	 * 取得邮件地址
    	 * @return 邮件地址
    	 */
    	public String getEmail() {
    		return email;
    	}
    
    	/**
    	 * 设定邮件地址
    	 * @param email 邮件地址
    	 */
    	public void setEmail(String email) {
    		this.email = email;
    	}
    
    	/**
    	 * 取得出生年月日
    	 * @return 出生年月日
    	 */
    	public String getBirth_ymd() {
    		return birth_ymd;
    	}
    
    	/**
    	 * 设定出生年月日
    	 * @param birth_ymd 出生年月日
    	 */
    	public void setBirth_ymd(String birth_ymd) {
    		this.birth_ymd = birth_ymd;
    	}
    
    	/**
    	 * 取得电话号码
    	 * @return 电话号码
    	 */
    	public String getTelphone_number() {
    		return telphone_number;
    	}
    
    	/**
    	 * 设定电话号码
    	 * @param telphone_number 电话号码
    	 */
    	public void setTelphone_number(String telphone_number) {
    		this.telphone_number = telphone_number;
    	}
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89

    7.8 com.study.entity.S001Entity .java

    创建包:com.study.entity,然后在该包下面创建S001Entity .java的内容如下,这是数据库实体类,对应着数据库里S001表,主要用于SQL检索的时候,本博客中没有用到这个类。

    package com.study.entity;
    
    public class S001Entity {
    	/**
    	 * 登陆用户ID
    	 */
    	private String login_userid;
    
    	/**
    	 * 登陆密码
    	 */
    	private String login_password;
    	
    	/**
    	 * 用户名表示用
    	 */
    	private String user_name;
    	
    	/**
    	 * 邮件地址
    	 */
    	private String email;
    	
    	/**
    	 * 出生年月日
    	 */
    	private String birth_ymd;
    	
    	/**
    	 * 电话号码
    	 */
    	private String telphone_number;
    
    	/**
    	 * 取得登陆用户ID
    	 * @return 登陆用户ID
    	 */
    	public String getLogin_userid() {
    		return login_userid;
    	}
    	
    	/**
    	 * 设定登陆用户ID
    	 * @param login_userid 登陆用户ID
    	 */
    	public void setLogin_userid(String login_userid) {
    		this.login_userid = login_userid;
    	}
    
    	/**
    	 * 取得登陆密码
    	 * @return 登陆密码
    	 */
    	public String getLogin_password() {
    		return login_password;
    	}
    
    	/**
    	 * 设定登陆密码
    	 * @param login_password 登陆密码
    	 */
    	public void setLogin_password(String login_password) {
    		this.login_password = login_password;
    	}
    
    	/**
    	 * 取得用户名表示用
    	 * @return 用户名表示用
    	 */
    	public String getUser_name() {
    		return user_name;
    	}
    
    	/**
    	 * 设定用户名表示用
    	 * @param user_name 用户名表示用
    	 */
    	public void setUser_name(String user_name) {
    		this.user_name = user_name;
    	}
    
    	/**
    	 * 取得邮件地址
    	 * @return 邮件地址
    	 */
    	public String getEmail() {
    		return email;
    	}
    
    	/**
    	 * 设定邮件地址
    	 * @param email 邮件地址
    	 */
    	public void setEmail(String email) {
    		this.email = email;
    	}
    
    	/**
    	 * 取得出生年月日
    	 * @return 出生年月日
    	 */
    	public String getBirth_ymd() {
    		return birth_ymd;
    	}
    
    	/**
    	 * 设定出生年月日
    	 * @param birth_ymd 出生年月日
    	 */
    	public void setBirth_ymd(String birth_ymd) {
    		this.birth_ymd = birth_ymd;
    	}
    
    	/**
    	 * 取得电话号码
    	 * @return 电话号码
    	 */
    	public String getTelphone_number() {
    		return telphone_number;
    	}
    
    	/**
    	 * 设定电话号码
    	 * @param telphone_number 电话号码
    	 */
    	public void setTelphone_number(String telphone_number) {
    		this.telphone_number = telphone_number;
    	}
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131

    7.9 com.study.repository.AMC01Repository .java

    创建包:com.study.repository,然后在该包下面创建AMC01Repository .java的内容如下,这是和AMC01Repository.xml文件相对应的类,调用这个类后,就能调用到AMC01Repository.xml,然后就能实现对数据库的增删改查。
    关于怎么传入参数的博客:https://blog.csdn.net/qq_38254897/article/details/84961223

    package com.study.repository;
    
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Param;
    
    import com.study.dto.AMC01LoginUserInfoDto;
    
    @Mapper
    public interface AMC01Repository {
    
    	/**
    	 * 检索登陆用户的信息
    	 * @param login_userid 登陆用户ID
    	 * @param login_password 登陆密码
    	 * @return 登陆用户的信息
    	 */
    	public AMC01LoginUserInfoDto selectUserInfo(@Param("login_userid") String login_userid,@Param("login_password") String login_password);
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    7.10 com.study.service.AMC01Service .java

    创建包:com.study.service,然后在该包下面创建AMC01Service .java的内容如下,这是controller类直接调用的程序,负责实现一段完整的业务逻辑。

    package com.study.service;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.study.dto.AMC01InputDto;
    import com.study.dto.AMC01LoginUserInfoDto;
    import com.study.dto.AMC01OutputDto;
    import com.study.repository.AMC01Repository;
    
    @Service
    public class AMC01Service {
    	
    	@Autowired
    	private AMC01Repository amc01Repository;
    
    	public AMC01OutputDto excute(AMC01InputDto amc01InputDto) {
    		AMC01LoginUserInfoDto amc01LoginUserInfoDto = amc01Repository.selectUserInfo(amc01InputDto.getLogin_userid(), amc01InputDto.getLogin_password());
    		
    		AMC01OutputDto amc01OutputDto = new AMC01OutputDto();
    		if(amc01LoginUserInfoDto != null) {
    			amc01OutputDto.setUser_name(amc01LoginUserInfoDto.getUser_name());
    			amc01OutputDto.setEmail(amc01LoginUserInfoDto.getEmail());
    			amc01OutputDto.setBirth_ymd(amc01LoginUserInfoDto.getBirth_ymd());
    			amc01OutputDto.setTelphone_number(amc01LoginUserInfoDto.getTelphone_number());
    		}
    		return amc01OutputDto;
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    7.11 AMC01Repository.xml

    在这里插入图片描述

    在src/main/resources文件夹下,创建文件夹com/study/repository,不是包,然后创建AMC01Repository.xml。这里负责检索用户信息,这个文件可以写很多SQL,不限制写一个,可以写所有增删改查。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.study.repository.AMC01Repository">
        <select
                id="selectUserInfo" resultType="com.study.dto.AMC01LoginUserInfoDto">
            SELECT  USER_NAME
                   ,EMAIL
                   ,BIRTH_YMD
                   ,TELPHONE_NUMBER
              FROM S001
             WHERE LOGIN_USERID=#{login_userid}
               AND LOGIN_PASSWORD=#{login_password}
        </select>
    </mapper>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    7.12 application.properties

    在src/main/resources文件夹下,创建文件application.properties
    在这里插入图片描述
    内容如下

    spring.mvc.view.prefix=/WEB-INF/jsp/
    spring.mvc.view.suffix=.jsp
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mydb?serverTimezone=Asia/Shanghai&characterEncoding=utf8
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.jpa.properties.hibernate.hbm2dd1.auto=update
    spring.jpa.show-sql=true
    mybatis.mapper-locations: classpath:com/study/repository/*.xml
    mybatis.type-aliases-package: com.study.dto
    logging.level.org.lzq.tide.mapper=debug
    server.context-path=/myweb
    server.port=8090
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    8 启动web应用

    打开WebAppMainApplication.java,鼠标右键单击,参照下图选择
    在这里插入图片描述
    我这里启动失败了,报了错误
    参照下面这个博客,解决了我的问题:
    java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password‘.解决方法

    上面博客的命令如下:
    ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER; #修改加密规则
    ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; #更新一下用户的密码
    FLUSH PRIVILEGES; #刷新权限
    再重置下密码:alter user ‘root’@‘localhost’ identified by ‘123456’;

    再次启动获得成功
    在这里插入图片描述
    打开网页浏览器,访问:http://localhost:8090/myweb/
    在这里插入图片描述
    点击上面图片的登陆链接,跳转到下面的页面,输入
    登陆用户名:5001
    登陆密码:abc
    点击submit按钮
    在这里插入图片描述
    成功跳转,成功获取用户信息
    在这里插入图片描述
    再次点击登陆链接,输入错误的用户名,点击submit按钮
    在这里插入图片描述
    提示登陆失败
    在这里插入图片描述
    点击重新登陆,正常跳转
    在这里插入图片描述
    经过上面的测试,说明实现了自己想要的功能。

  • 相关阅读:
    (最新+详细+Pycharm远程调试GUI程序)解决qt.qpa.xcb: could not connect to display问题
    Echarts的legend的特殊图例展示
    组件通信$refs | $parent |$root
    【无标题】
    从Spring源码探究SpringMVC运行流程
    C专家编程 第11章 你懂得C,所以C++不再话下 11.18 如果我的目标是那里,我不会从这里起步
    C++设计模式04-——装饰设计模式
    为SpringBoot Admin监控的服务端加上登录认证
    BGP边界网关路由实验(华为)
    React组件化开发二
  • 原文地址:https://blog.csdn.net/u011159350/article/details/132865615