杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】1

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】

1. 开发环境

Eclipse:2019.06  +  Jdk:8u211 + Tomcat:9.0.14 + Maven:3

2.准备工作

spring5.1.5 +  mybatis3.6.4 +  mybatis-spring1.3.2 +  druid1.1.0 + MySQL5.1.4.6

3. 项目布局

4.编码

1. 编写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>
 
  <groupId>cn.javabs</groupId>
  <artifactId>ssm-demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
 
  <name>ssm-demo Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.javabs.cn</url>
 
  <!-- 为了确定每个框架的版本号 -->
  <!-- 锁定版本 -->
  <properties>
      <spring.version>5.1.5.RELEASE</spring.version>
    <mybatis.version>3.4.6</mybatis.version>
    <mybatis-spring.version>1.3.2</mybatis-spring.version>
        <slf4j.version>1.7.25</slf4j.version>
        <log4j.version>1.2.17</log4j.version>
    <druid.version>1.1.10</druid.version> 
    <mysql.version>5.1.38</mysql.version>
  </properties>
  
  <dependencies>
      <!-- spring -->
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.6.8</version>
    </dependency>
 
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>${spring.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
 
 
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
 
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
 
    
    <!-- mybatis start -->
    <dependency>
       <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>
    
    <!-- mybatis start -->
    <dependency>
      <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
      <version>${mybatis-spring.version}</version>
    </dependency>
    
     <!-- log start -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
          <!-- log end -->
          
          <!--junit  start -->
        <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
      </dependency>
     <!-- junit end -->
     
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
      </dependency>
      
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>${druid.version}</version>
    </dependency>
      
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
      </dependency>
      
      <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    
     <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
      </dependency>
  </dependencies>
  <build>
    <finalName>ssm</finalName>
     <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <encoding>UTF-8</encoding>
          <showWarnings>true</showWarnings>
        </configuration>
      </plugin>
      
       <!-- Tomcat7 -->
          <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
                <configuration>
                    <!-- <path>/</path> -->
                    <server>tomcat7</server>
                    <port>8888</port>
                    <encoding>UTF-8</encoding>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    </plugins>
  </pluginManagement>
  </build>
</project>

2. 编写web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
  <display-name>基于ssm的整合案例</display-name>
  
  <!-- 指定Spring配置文件 的位置 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!-- Spring 的监听器 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <!-- 编码过滤器 -->
  <filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>*.action</url-pattern>
  </filter-mapping>
  
  <!-- 前端控制器 -->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc-config.xml</param-value>
    </init-param>
    <!-- 程序一旦启动,自动加载前端控制器 -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>
  
  <!-- 欢迎页面 -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
</web-app>

3. 配置文件

1. applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd ">
 
  <!-- 1.读取jdbc的配置文件 -->
  <context:property-placeholder location="classpath:jdbc.properties" />
  
  <!-- 2.配置druid数据源 -->
  <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" >
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
  </bean>
  
  <!-- 3.配置MyBatis的工厂 -->
  <bean class="org.mybatis.spring.SqlSessionFactoryBean" >
    <!-- 3.1指定mybatis-config.xml文件的位置 -->
    <property name="configLocation" value="classpath:mybatis-config.xml" />
    <!-- 3.2 注入引用的数据源 -->
    <property name="dataSource" ref="dataSource" />
  </bean>
  
  <!-- 4. 配置事务管理器 -->
  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
    <property name="dataSource" ref="dataSource" />
  </bean>
  <!-- 5. 配置事务通知 -->
  <tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
      <!-- 传播行为 -->
      <tx:method name="add*" propagation="REQUIRED"/>
      <tx:method name="insert*" propagation="REQUIRED"/>
      <tx:method name="create*" propagation="REQUIRED"/>
      <tx:method name="save*" propagation="REQUIRED"/>
      <tx:method name="put*" propagation="REQUIRED"/>
      <tx:method name="delete*" propagation="REQUIRED"/>
      <tx:method name="remove*" propagation="REQUIRED"/>
      <tx:method name="edit*" propagation="REQUIRED"/>
      <tx:method name="update*" propagation="REQUIRED"/>
      <tx:method name="get*" propagation="SUPPORTS" read-only="true" />
      <tx:method name="find*" propagation="SUPPORTS" read-only="true" />
      <tx:method name="select*" propagation="SUPPORTS" read-only="true" />
      <tx:method name="quert*" propagation="SUPPORTS" read-only="true" />
    </tx:attributes>
  </tx:advice>
  <!-- 6.切面 -->
  <aop:config>
    <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.javabs.ssm.service.*.*(..))"/>
  </aop:config>
  <!-- 7.接口开发,去扫描dao的配置mapper文件 -->
  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
    <property name="basePackage" value="cn.javabs.ssm.dao" />
  </bean>
  <!-- 8.配置扫描service注解 -->
  <context:component-scan base-package="cn.javabs.ssm.service"></context:component-scan>
  
</beans>


2.springmvc-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd ">
 
 
  <!-- 1.mvc扫描驱动注解 -->
  <mvc:annotation-driven />
  
  <!-- 2.配置扫描器扫描controller -->
  <context:component-scan base-package="cn.javabs.ssm.controller" />
  
  <!-- 3.配置静态资源的访问映射 -->
  <mvc:resources location="/js/" mapping="/js/**" />
  <mvc:resources location="/css/" mapping="/css/**" />
  <mvc:resources location="/img/" mapping="/img/**" />
  
  <!-- 4.配置视图处理器 -->
  <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 前缀 -->
    <property name="prefix" value="/admin/" />
    <!-- 后缀 -->
    <property name="suffix" value=".jsp" />
  </bean>
 
</beans>


3.mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 
<configuration>
  <!-- 定义别名  -->
  <typeAliases>
    <package name="cn.javabs.ssm.entity"/>
  </typeAliases>
</configuration>

4.jdbc.properties

 
cn.javabs.ssm.entity        --- 实体包
 
cn.javabs.ssm.controller    --- 控制器包
 
cn.javabs.ssm.service       --- 业务接口包
 
cn.javabs.ssm.service.impl  --- 业务接口的实现类包
 
cn.javabs.ssm.dao           --- 持久层接口包 + Mapper文件包

User.java

package cn.javabs.ssm.entity;
 
public class User {
 
  private Integer id;
  private String username;
  private String password;
 
  public Integer getId() {
    return id;
  }
 
  public void setId(Integer id) {
    this.id = id;
  }
 
  public String getUsername() {
    return username;
  }
 
  public void setUsername(String username) {
    this.username = username;
  }
 
  public String getPassword() {
    return password;
  }
 
  public void setPassword(String password) {
    this.password = password;
  }
 
  @Override
  public String toString() {
    return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
  }
 
}

2.UserDao.java

package cn.javabs.ssm.dao;
 
import org.apache.ibatis.annotations.Param;
 
import cn.javabs.ssm.entity.User;
 
public interface UserDao {
 
  User userLogin(@Param("username") String username, @Param("password") String password);
 
}

3.UserDao.xml

<?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="cn.javabs.ssm.dao.UserDao">
 
  <select id="userLogin" parameterType="String"
    resultType="cn.javabs.ssm.entity.User">
    select * from users where
    username = #{username} and password = #{password}
  </select>
</mapper>


4. UserService.java

package cn.javabs.ssm.service;
 
import cn.javabs.ssm.entity.User;
 
public interface UserService {
 
  User login(String username, String password);
 
}

杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】2:https://developer.aliyun.com/article/1543104

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
Java 应用服务中间件 Maven
Mac使用Idea配置传统SSM项目(非maven项目)
Mac使用Idea配置传统SSM项目(非maven项目)
31 1
|
3月前
|
Java Apache Maven
杨校老师课堂之Maven下载与配置阿里云镜像
杨校老师课堂之Maven下载与配置阿里云镜像
126 0
|
3月前
|
前端开发 Java 关系型数据库
杨校老师项目之基于SSM社区疫情防控人员访客登记报备平台
杨校老师项目之基于SSM社区疫情防控人员访客登记报备平台
28 0
|
3月前
|
Java 数据库连接 Spring
杨校老师课堂之Java EE框架SSM所需jar包下载
杨校老师课堂之Java EE框架SSM所需jar包下载
46 0
|
3月前
|
Java Maven Android开发
杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】2
杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】
28 0
|
Java Apache Maven
Eclipse创建maven项目时,出现Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources错
Eclipse创建maven项目时,出现Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources错
326 0
Eclipse创建maven项目时,出现Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources错
|
Java 关系型数据库 MySQL
如何在Eclipse中搭建MyBatis基本开发环境?(使用Eclipse创建Maven项目)
如何在Eclipse中搭建MyBatis基本开发环境?(使用Eclipse创建Maven项目)
352 0
如何在Eclipse中搭建MyBatis基本开发环境?(使用Eclipse创建Maven项目)
|
Java Maven Android开发
Eclipse创建maven项目
Eclipse创建maven项目
233 0
Eclipse创建maven项目
|
存储 Java Apache
使用eclipse创建maven项目出现的一个问题
错误信息 This error occurs when you employ a plugin that Maven could not download. Possible causes for this error are: You are referring to a non-existing plugin, e.
1638 0

推荐镜像

更多