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

news2024/11/22 5:35:23

文章目录

  • 1 第一步软件安装
    • 1.1 下载并安装Eclipse
    • 1.2 下载并安装Java
    • 1.3 下载并安装Apache Maven
    • 1.4 下载并安装MySQL
  • 2 创建所需要的表和数据
  • 3 创建Maven 工程、修改jdk
  • 4 通过pom.xml获取所需要的jar包
  • 5 安装Eclipse的MyBatis插件
  • 6 创建文件夹以及jsp文件
  • 7 创建下面各种java类文件、xml、properties文件
    • 7.1 com.study.WebAppMainApplication.java
    • 7.2 com.study.action.AMC01LoginAction .java
    • 7.3 com.study.controller.amc01.AMC01Controller .java
    • 7.4 com.study.controller.amc01.AMC01Form .java
    • 7.5 com.study.dto.AMC01InputDto .java
    • 7.6 com.study.dto.AMC01OutputDto .java
    • 7.7 com.study.dto.AMC01LoginUserInfoDto .java
    • 7.8 com.study.entity.S001Entity .java
    • 7.9 com.study.repository.AMC01Repository .java
    • 7.10 com.study.service.AMC01Service .java
    • 7.11 AMC01Repository.xml
    • 7.12 application.properties
  • 8 启动web应用

从百度云盘下载本博客的代码,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 = '用户情报表';

在这里插入图片描述

在这里插入图片描述
在下图添加数据,然后点击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文件中

<?xml version="1.0" encoding="UTF-8"?>
<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.0</modelVersion>
	<artifactId>study</artifactId>
	<groupId>com.study</groupId>
	<version>0.0.1-SNAPSHOT</version>
	<parent>
		<!-- 依赖管理,引入以后在声明其它dependency的时候就不需要version -->
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
		<relativePath />
	</parent>
	<properties>
		<!-- 声明项目配置依赖编码格式为 utf-8 -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<!-- java jdk 版本声明 可变更 根据自己配置去匹配 -->
		<java.version>15.0</java.version>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<fastjson.version>1.2.24</fastjson.version>
	</properties>
	<dependencies>
		<!-- 对web开发的支持,包含了spring webmvc和tomcat等web开发的特性 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- spring boot核心,包括自动配置支持,日志和YAML -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
		<!-- 使用jsp引擎,springboot内置tomcat没有此依赖 -->
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
		</dependency>
		<!--        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>-->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.1</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<!-- 如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。 -->
			<!-- 如果使用maven的spring-boot:run的话就不需要此配置 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<!-- mybatis generator 自动生成代码插件 -->
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.1</version>
				<configuration>
					<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
					<overwrite>true</overwrite>
					<verbose>true</verbose>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

在这里插入图片描述

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">Submit</button>
    </form>
</body>
</html>

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>

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>
    <c:if test=”${userinfo.user_name!=''}”>
    你的昵称是  ${userinfo.user_name}<br>
    你的邮件是  ${userinfo.email}<br>
    你的生日是  ${userinfo.birth_ymd}<br>
    你的电话号码是  ${userinfo.telphone_number}<br>
    </c:if>
    <c:if test=”${userinfo.user_name==''}”>
    <a href="amc01">登录</a>
    </c:if>
</body>
</html>

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);
	}
}

7.2 com.study.action.AMC01LoginAction .java

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

package com.study.action;

public class AMC01LoginAction {

}

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

}

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

}

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

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

}

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

}

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

}

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);
}

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

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>

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

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按钮
在这里插入图片描述
提示登陆失败
在这里插入图片描述
点击重新登陆,正常跳转
在这里插入图片描述
经过上面的测试,说明实现了自己想要的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

没有炫光的台灯有哪些?无眩光灯具推荐

很多家长有时候会说孩子觉得家里的台灯灯光刺眼&#xff0c;看书看久了就不舒服。这不仅要看光线亮度是否柔和&#xff0c;还要考虑台灯是不是有做遮光式设计。没有遮光式设计的台灯&#xff0c;光源外露&#xff0c;灯光会直射孩子头部&#xff0c;孩子视线较低&#xff0c;很…

掌握Katalon Studio 导入 swagger 接口文档,接口测试效率提升100%

katalon studio大家都已经不陌生了&#xff0c;是一款现在非常主流的自动化测试工具&#xff0c;包括了web、api、APP&#xff0c;甚至PC应用程序都可以使用它来完成自动化测试。 swagger是一款RESTFUL接口的文档在线自动生成软件&#xff0c;swagger是一个规范和完整的框架&a…

Python 基于人脸识别的实验室智能门禁系统的设计,附可视化界面

1 简介 本基于人脸识别的实验室智能门禁系统通过大数据和信息化的技术实现了门禁管理流程的信息化的管理操作。平台的前台页面通过简洁的平台页面设计和功能结构的分区更好的提高用户的使用体验&#xff0c;没有过多的多余的功能&#xff0c;把所有的功能操作都整合在功能操作…

物理内存分配

目录 内核物理内存分配接口 内存分配行为&#xff08;物理上&#xff09; 内存分配的行为操作 内存 三个水位线 水线计算 水位线影响内存分配行为 内存分配核心__alloc_pages 释放页 1、内核物理内存分配接口 struct page *alloc_pages(gfp_t gfp, unsigned int ord…

【go语言基础】go类型断言 type switch + case,t := x.(type)

有这么一个场景&#xff0c;当你在和用户对接的时候&#xff0c;调取第三方接口&#xff0c;但是第三方接口的时常变化的&#xff0c;比如从string类型变为int&#xff0c;这个时候你需要再去判断类型&#xff0c;获取第三方接口的参数。比较麻烦。 针对这一场景&#xff0c;g…

爬虫工具篇-ProxyBroker-代理IP管理

前言 随着互联网的不断发展&#xff0c;大量的信息和数据都被存储在各种不同的网站上。为了获取这些信息和数据&#xff0c;我们经常需要使用爬虫工具来自动化地从网站上抓取数据。然而&#xff0c;在一些情况下&#xff0c;网站可能会采取一些反爬虫措施&#xff0c;例如向IP…

AG35学习笔记(一):debug串口抓取模组log、debug串口测试AT指令、echo命令通过串口发送16进制数据

目录 一、概述二、抓取模组log2.1 硬件接口2.2 用户登录2.3 相关指令 三、测试AT指令3.1 查看端口3.2 进入模式 四、串口发16进制echo使用 一、概述 二、抓取模组log 在之前记录了通过USB&#xff0c;使用移远工具Qwinlog来抓取log&#xff08;3.3 抓取模组log&#xff09;。…

21天学会C++:Day11----运算符重载

CSDN的uu们&#xff0c;大家好。这里是C入门的第十一讲。 座右铭&#xff1a;前路坎坷&#xff0c;披荆斩棘&#xff0c;扶摇直上。 博客主页&#xff1a; 姬如祎 收录专栏&#xff1a;C专题 目录 1. 知识引入 2. 运算符重载 2.1 operator<() 2.2 operator() 2.3 o…

上市公司的公众环境关注度(2011-2022年)

随着互联网的普及&#xff0c;公众越来越多地通过互联网表达看法。国内外一些学者在研究中采用Google搜索引擎搜索功能构建指标&#xff0c;表达公众需求和关注程度(Kahn & Kotchen, 2011; Choi & Varian, 2012; 郑思齐等&#xff0c; 2013) 百度搜索在中国内地的市场占…

高速、低功耗模拟开关芯片 MS703D

MS703D 是一款高速、低功耗模拟开关芯片&#xff0c;其工作电压范围 是 1.8 至 5.5V 。其具有低码间偏移、高通道噪声隔离度以及大带 宽特性。 主要应用范围包括&#xff1a;手持设备和消费电子&#xff0c;如手机、数码相 机、笔记本电脑等。 主要特点  3V 下导通电…

开源日报 0824 | 构建UI组件和页面的前端工作坊

Storybook 是一个用于构建 UI 组件和页面的前端工作坊&#xff0c;支持多种主流框架&#xff0c;提供丰富的插件&#xff0c;具有可配置性强和扩展性好的特点。 storybookjs/storybook Stars: 79.9k License: MIT Storybook 是一个用于构建 UI 组件和页面的前端工作坊&#x…

px to rem rpx vw中文文档 |px自动转换rem插件

【px to rem & rpx & vw】项目地址&#xff1a; https://github.com/cipchk/vscode-cssrem/blob/HEAD/README.zh-CN.md 作者&#xff1a;卡色-cipchk https://github.com/cipchk cssrem 一个 px 与 rem 单位互转的 VSCode 插件&#xff0c;且支持WXSS微信小程序。 特性…

成集云 | 金蝶EAS与旺店通ERP集成(旺店通主管库存)| 解决方案

源系统成集云目标系统 方案介绍 金蝶EAS是一款全球首款融合TOGAF标准SOA架构的企业管理软件&#xff0c;专门为大中型企业设计&#xff0c;以“创造无边界信息流”为产品设计理念&#xff0c;支持云计算、SOA和动态流程管理的整合技术平台。 旺店通ERP系统是一款专…

API(十)时间相关的SDK

一 时间相关的SDK ① 时间记录的必要性 1、案发现场的时间点2、通过时间判断性能3、时间的不准确性,日志落盘时间 --> 缓冲区导致延迟 ② 使用哪些日期和时间的函数 1、lua 标准时间函数,函数 os.time、os.date 和 os.difftime 提供了所有日期和时间2、在 openresty…

什么是商品价格监控,需要用到API接口嘛

商品价格监控是指通过系统化的方法来追踪、分析和比较商品价格的动态变化&#xff0c;以帮助商家及时获取市场价格信息&#xff0c;做出相应的决策。为了实现这一目标&#xff0c;API接口可以被用来获取商品价格信息。 具体来说&#xff0c;商家可以通过API接口连接到电商平台…

生产制造业厂家固定资产怎么管理

固定资产的管理对于企业的运营效率和盈利能力具有重要影响。然而&#xff0c;传统的固定资产管理方法往往存在许多问题&#xff0c;如资产的低效使用、维护成本高昂以及决策者对资产价值缺乏准确了解等。 因此&#xff0c;我们需要采用一种全新的方式来管理我们的固定资产。本文…

“温莎当下·麦克成风”2023赛季 杭州赛区决赛圆满落幕!

2023年9月16日&#xff0c;“温莎当下麦克成风”2023赛季上海赛区决赛在拱墅区大悦城水秀广场落下帷幕。比赛现场气氛高燃、精彩纷呈&#xff0c;选手们在璀璨的舞台上激情演唱&#xff0c;上演了一场精彩刺激的巅峰争霸赛。经过多轮比拼&#xff0c;最终7号选手方雪莹脱颖而出…

标准防雷接地网和简易地网的制作方法

防雷接地网是整套防雷系统不可缺少的部分&#xff0c;一般是由埋在地下一定深度的多个金属接地极和由导体将这些接地极相互连接组成一网状结构的接地体的总称。它广泛应用在电力、建筑、计算机&#xff0c;工矿企业、通讯等众多行业之中&#xff0c;起着安全防护、屏蔽等作用。…

Spring cloud gateway+apollo=bug?

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 spring cloud 版本 spring cloud: 2021.0.4spring cloud gateway: 3.1.4 背景 最近在配置研究网关的超时时间&#xff0c;有这么一个需求。 服务路由转发接口…

北工大汇编——综合题(2)

题目要求 编写一个比赛得分程序。共有7 个评委&#xff0c;按百分制打分&#xff0c;计分 原则是去掉一个最高分和一个最低分&#xff0c;求平均值。要求&#xff1a; 评委的打分以十进制从键盘输入。成绩以十进制给出&#xff0c;并保留 1位小数。输入输出时屏幕上要有相应提…