看完这篇,我就不信你还不懂SSM

5 篇文章 0 订阅
1 篇文章 0 订阅

SSM框架理解最近两星期一直在学JavaEE的MVC框架,因为之前学校开的JavaEE课程就一直学的吊儿郎当的,所以现在真正需要掌握就非常手忙脚乱,在此记录下这段时间学习的感悟,如有错误,希望大牛毫不客气地指出。

SpringSpring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。

SpringMVCSpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。

mybatismybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

SSM框架整合要让几个框架相互配合,配置文件怎么写,项目的目录结构怎么设计对我这样一个新手来说实在很头疼。目前我也只刚刚写过一个用户登录的demo,在此记录一下。

最近整理了一份覆盖一线大厂Java面试题总结+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结!

想要领取这份PDF的伙伴 +V:BGM7756  回复【CSDN】即可免费领取PDF资料

项目目录结构

看完这篇,我就不信你还不懂SSM

 

  1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3 
  4     <modelVersion>4.0.0</modelVersion>
  5     <name>LoginDemo</name>
  6     <groupId>com.cyan</groupId>
  7     <artifactId>ssm</artifactId>
  8     <packaging>war</packaging>
  9     <version>1.0-SNAPSHOT</version>
 10     <url>http://maven.apache.org</url>
 11 
 12 
 13     <build>
 14         <finalName>ssm</finalName>
 15         <plugins>
 16             <!--mybatis 逆向工程插件-->
 17             <plugin>
 18                 <groupId>org.mybatis.generator</groupId>
 19                 <artifactId>mybatis-generator-maven-plugin</artifactId>
 20                 <version>1.3.2</version>
 21                 <configuration>
 22                     <verbose>true</verbose>
 23                     <overwrite>true</overwrite>
 24                 </configuration>
 25             </plugin>
 26             <plugin>
 27                 <groupId>org.apache.maven.plugins</groupId>
 28                 <artifactId>maven-compiler-plugin</artifactId>
 29                 <configuration>
 30                     <source>1.6</source>
 31                     <target>1.6</target>
 32                 </configuration>
 33             </plugin>
 34         </plugins>
 35     </build>
 36 
 37 
 38     <properties>
 39         <spring.version>4.1.1.RELEASE</spring.version>
 40     </properties>
 41 
 42 
 43 
 44     <dependencies>
 45         <!-- springframe start -->
 46         <dependency>
 47             <groupId>org.springframework</groupId>
 48             <artifactId>spring-core</artifactId>
 49             <version>${spring.version}</version>
 50         </dependency>
 51 
 52         <dependency>
 53             <groupId>org.springframework</groupId>
 54             <artifactId>spring-web</artifactId>
 55             <version>${spring.version}</version>
 56         </dependency>
 57 
 58         <dependency>
 59             <groupId>org.springframework</groupId>
 60             <artifactId>spring-oxm</artifactId>
 61             <version>${spring.version}</version>
 62         </dependency>
 63 
 64         <dependency>
 65             <groupId>org.springframework</groupId>
 66             <artifactId>spring-tx</artifactId>
 67             <version>${spring.version}</version>
 68         </dependency>
 69 
 70         <dependency>
 71             <groupId>org.springframework</groupId>
 72             <artifactId>spring-jdbc</artifactId>
 73             <version>${spring.version}</version>
 74         </dependency>
 75 
 76         <dependency>
 77             <groupId>org.springframework</groupId>
 78             <artifactId>spring-webmvc</artifactId>
 79             <version>${spring.version}</version>
 80         </dependency>
 81 
 82         <dependency>
 83             <groupId>org.springframework</groupId>
 84             <artifactId>spring-aop</artifactId>
 85             <version>${spring.version}</version>
 86         </dependency>
 87 
 88         <dependency>
 89             <groupId>org.springframework</groupId>
 90             <artifactId>spring-context-support</artifactId>
 91             <version>${spring.version}</version>
 92         </dependency>
 93 
 94         <dependency>
 95             <groupId>org.springframework</groupId>
 96             <artifactId>spring-test</artifactId>
 97             <version>${spring.version}</version>
 98         </dependency>
 99         <!-- springframe end -->
100 
101         <!--aspectj start-->
102         <dependency>
103             <groupId>org.aspectj</groupId>
104             <artifactId>aspectjweaver</artifactId>
105             <version>1.8.6</version>
106         </dependency>
107 
108         <dependency>
109             <groupId>org.aspectj</groupId>
110             <artifactId>aspectjrt</artifactId>
111             <version>1.8.6</version>
112         </dependency>
113         <!--aspectj end-->
114 
115         <!--c3p0-->
116         <dependency>
117             <groupId>com.mchange</groupId>
118             <artifactId>c3p0</artifactId>
119             <version>0.9.5.1</version>
120         </dependency>
121 
122         <!--servlet/jsp api start-->
123         <dependency>
124             <groupId>javax.servlet</groupId>
125             <artifactId>servlet-api</artifactId>
126             <version>2.5</version>
127         </dependency>
128 
129         <dependency>
130             <groupId>javax.servlet.jsp</groupId>
131             <artifactId>jsp-api</artifactId>
132             <version>2.1</version>
133             <scope>provided</scope>
134         </dependency>
135         <!--servlet/jsp api end-->
136 
137         <!--junit4-->
138         <dependency>
139             <groupId>junit</groupId>
140             <artifactId>junit</artifactId>
141             <version>4.11</version>
142             <scope>test</scope>
143         </dependency>
144 
145         <!--mybatis-->
146         <dependency>
147             <groupId>org.mybatis</groupId>
148             <artifactId>mybatis</artifactId>
149             <version>3.3.0</version>
150         </dependency>
151         <!--mybatis spring整合-->
152         <dependency>
153             <groupId>org.mybatis</groupId>
154             <artifactId>mybatis-spring</artifactId>
155             <version>1.2.3</version>
156         </dependency>
157 
158         <!--mysql driver-->
159         <dependency>
160             <groupId>mysql</groupId>
161             <artifactId>mysql-connector-java</artifactId>
162             <version>5.1.6</version>
163         </dependency>
164 
165         <!--jstl-->
166         <dependency>
167             <groupId>jstl</groupId>
168             <artifactId>jstl</artifactId>
169             <version>1.2</version>
170         </dependency>
171 
172     </dependencies>
173 </project>

最近整理了一份覆盖一线大厂Java面试题总结+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结!

想要领取这份PDF的伙伴 +V:BGM7756  回复【CSDN】即可免费领取PDF资料

配置文件web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 5          version="3.1">
 6 
 7     <!-- Spring ApplicationContext 载入 -->
 8     <listener>
 9         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
10     </listener>
11 
12     <!-- SpringMVC核心Servlet -->
13     <servlet>
14         <servlet-name>springMVC-config</servlet-name>
15         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
16         <init-param>
17             <param-name>contextConfigLocation</param-name>
18             <param-value>classpath:/WEB-INF/springMVC-config.xml</param-value>
19         </init-param>
20     </servlet>
21     
22     <!-- 拦截所有请求 -->
23     <servlet-mapping>
24         <servlet-name>springMVC-config</servlet-name>
25         <url-pattern>/</url-pattern>
26     </servlet-mapping>
27 
28     <!-- spring配置文件加载 -->
29     <context-param>
30         <param-name>contextConfigLocation</param-name>
31         <param-value>classpath:WEB-INF/spring-mybatis.xml</param-value>
32     </context-param>
33 
34 </web-app>

spring-mybatis.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xmlns:p="http://www.springframework.org/schema/p"
 5        xmlns:context="http://www.springframework.org/schema/context"
 6        xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
 7        xsi:schemaLocation="http://www.springframework.org/schema/beans
 8         http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
 9         http://www.springframework.org/schema/context
10         http://www.springframework.org/schema/context/spring-context-3.2.xsd
11         http://www.springframework.org/schema/tx
12         http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
13 
14     <!-- 自动搜索bean -->
15     <context:annotation-config/>
16     <context:component-scan base-package="com.cyan" />
17 
18     <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
19         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
20         <property name="url" value="jdbc:mysql://localhost:3306/Demo"/>
21         <property name="username" value="root"/>
22         <property name="password" value="2233"/>
23     </bean>
24 
25     <!-- mybatis核心bean -->
26     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
27         <property name="dataSource" ref="datasource"/>
28         <!-- 这句配置mapper配置文件的位置 如果采用注解的方式这句可以省去 -->
29         <!--<property name="mapperLocations" value="classpath:/WEB-INF/Mappers/*.xml" />-->
30     </bean>
31 
32     <!-- 自动搜索mapper接口 -->
33     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
34         <property name="basePackage" value="com.cyan.Mapper" />
35     </bean>
36 
37 
38     <!-- 事务处理 -->
39     <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
40         <property name="dataSource" ref="datasource"/>
41     </bean>
42 
43     <tx:advice id="txAdvice" transaction-manager="txManager">
44         <tx:attributes>
45             <tx:method name="insert*" propagation="REQUIRED"/>
46             <tx:method name="delete*" propagation="REQUIRED"/>
47             <tx:method name="update*" propagation="REQUIRED"/>
48             <tx:method name="select*" propagation="SUPPORTS"/>
49         </tx:attributes>
50     </tx:advice>
51 
52     <aop:config>
53         <aop:pointcut id="serviceCut" expression="execution(public * Service.*.*(..))" />
54         <aop:advisor pointcut-ref="serviceCut" advice-ref="txAdvice" />
55     </aop:config>
56 
57 
58 </beans>

springMVC-config.xml

 1 <beans xmlns="http://www.springframework.org/schema/beans"
 2        xmlns:context="http://www.springframework.org/schema/context"
 3        xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xsi:schemaLocation="
 5         http://www.springframework.org/schema/beans
 6         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 7         http://www.springframework.org/schema/context
 8         http://www.springframework.org/schema/context/spring-context-3.0.xsd
 9         http://www.springframework.org/schema/mvc
10         http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
11 
12     <!--spring可以自动去扫描base-pack下面或者子包下面的java文件,
13     如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean-->
14     <context:component-scan base-package="com.cyan.Controller">
15         <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
16         <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
17     </context:component-scan>
18 
19     <mvc:annotation-driven />
20     <mvc:default-servlet-handler/>
21 
22     <!-- 配置jsp文件的前后缀 “/”代表的是项目设定的Resource目录 -->
23     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
24         <property name="prefix" value="/"/>
25         <property name="suffix" value=".jsp" />
26     </bean>
27 
28 </beans>

数据库表结构

看完这篇,我就不信你还不懂SSM

 

看完这篇,我就不信你还不懂SSM

 

最近整理了一份覆盖一线大厂Java面试题总结+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结!

想要领取这份PDF的伙伴 +V:BGM7756  回复【CSDN】即可免费领取PDF资料

详细类设计-mapperUserMapper

 1 package com.cyan.Mapper;
 2 
 3 import com.cyan.Model.User;
 4 import org.apache.ibatis.annotations.Param;
 5 import org.apache.ibatis.annotations.Select;
 6 
 7 import javax.annotation.Resource;
 8 import java.util.List;
 9 
10 /**
11  * Created by cyan on 16/3/29.
12  */
13 
14 public interface UserMapper {
15     @Select("select * from LoginDemo")
16     public List<User> selectUser();
17     @Select("select * from LoginDemo where username=#{username}")
18     public List<User> selectUserByUsername(@Param("username")String username);
19 
20 }

-entityUser

 1 package com.cyan.Entity;
 2 
 3 /**
 4  * Created by cyan on 16/3/29.
 5  */
 6 public class User {
 7     private int id;
 8     private String username,password,slogan;
 9 
10     public int getId() {
11         return id;
12     }
13 
14     public void setId(int id) {
15         this.id = id;
16     }
17 
18     public String getUsername() {
19         return username;
20     }
21 
22     public void setUsername(String username) {
23         this.username = username;
24     }
25 
26     public String getPassword() {
27         return password;
28     }
29 
30     public void setPassword(String password) {
31         this.password = password;
32     }
33 
34     public String getSlogan() {
35         return slogan;
36     }
37 
38     public void setSlogan(String slogan) {
39         this.slogan = slogan;
40     }
41 
42 }

-serviceIUserService

 1 package com.cyan.Service;
 2 
 3 import com.cyan.Entity.User;
 4 
 5 /**
 6  * Created by cyan on 16/3/31.
 7  */
 8 public interface IUserService {
 9     public User getUserByName(String name);
10     public boolean verify(String username,String pwd);
11 }

UserServiceSpring中的几个标签@Component(声明一个类是Spring容器管理的类,可以细分为后面提到的三个标签)、@Controller(控制层)、@Service(服务层)、@Repository(持久层)。标签的作用是让Spring根据名字关联到这个类。@Autowired标签默认以byType的形式注入,使用这个标签是不需要getter和setter方法的。(这次代码中因为用户名密码校验部分要用到get方法所以写上了)可以配合@Qualifier标签根据bean的id来装配。

 1 package com.cyan.Service;
 2 
 3 import com.cyan.Mapper.UserMapper;
 4 import com.cyan.Entity.User;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.stereotype.Service;
 7 
 8 /**
 9  * Created by cyan on 16/3/31.
10  */
11 
12 @Service("userService")
13 public class UserService implements IUserService{
14 
15     @Autowired
16     private UserMapper userMapper;
17 
18     public void setUserMapper(UserMapper userMapper) {
19         this.userMapper = userMapper;
20     }
21 
22     @Override
23     public User getUserByName(String name) {
24         return userMapper.selectUserByUsername(name).get(0);
25     }
26 
27     @Override
28     public boolean verify(String username, String pwd) {
29         if(userMapper.selectUserByUsername(username).get(0).getPassword().equals(pwd))
30             return true;
31         else return false;
32     }
33 
34 }

-controllerLogin

 1 package com.cyan.Controller;
 2 
 3 import com.cyan.Service.IUserService;
 4 import org.springframework.beans.factory.annotation.Autowired;
 5 import org.springframework.stereotype.Controller;
 6 import org.springframework.web.bind.annotation.RequestMapping;
 7 import org.springframework.web.bind.annotation.RequestMethod;
 8 
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 
12 /**
13  * Created by cyan on 16/3/29.
14  */
15 
16 @Controller
17 public class Login {
18 
19     @Autowired
20     private IUserService userService;
21 
22     @RequestMapping("/index")
23     public String index(){
24         return "index";
25     }
26 
27     @RequestMapping(value ="/login",method = RequestMethod.POST)
28     public String login(HttpServletRequest req, HttpServletResponse resp){
29         String username=req.getParameter("username");
30         String pwd=req.getParameter("password");
31         if(userService.verify(username,pwd)){
32             req.getSession().setAttribute("user",userService.getUserByName(username));
33             return "success";
34         }
35         else return "index";
36 
37     }
38 }

jsp页面index.jsp

 1 <%--
 2   Created by IntelliJ IDEA.
 3   User: cyan
 4   Date: 16/3/29
 5   Time: 15:55
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 9 <html>
10   <head>
11     <title>Login</title>
12   </head>
13   <body>
14     <form action="/login" method="post">
15       用户名:<input type="text" name="username" id="username"/>
16       <br>
17       密码:<input type="password" name="password" id="password"/>
18       <br>
19       <input type="submit" value="登录"/>
20     </form>
21   </body>
22 </html>

success.jsp

 1 <%@ page import="com.cyan.Entity.User" %><%--
 2   Created by IntelliJ IDEA.
 3   User: cyan
 4   Date: 16/3/31
 5   Time: 23:45
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 9 <html>
10 <head>
11     <title>LoginSuccess</title>
12 </head>
13 <body>
14 登录成功!
15 <%
16     User user=(User)session.getAttribute("user");
17 %>
18 用户名:<%=user.getUsername()%><br>
19 个性签名:<%=user.getSlogan()%><br>
20 </body>
21 </html>

运行结果

看完这篇,我就不信你还不懂SSM

 

看完这篇,我就不信你还不懂SSM

最近整理了一份覆盖一线大厂Java面试题总结+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结!

想要领取这份PDF的伙伴 +V:BGM7756  回复【CSDN】即可免费领取PDF资料

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很抱歉,作为一个AI语言模型,我不能为您编写整的代码。但是我可以提供一些指导,帮助您自己成系统的开发。 首先,SSM框架是Spring、SpringMVC和MyBatis的缩写,是一种常用的Java Web应用开发框架。要使用SSM框架开发酒店管理系统,您需要熟悉JavaWeb开发,以及这三个框架的使用方法。 具体步骤如下: 1. 建立项目,配置SSM框架。 2. 创建数据库,并定义酒店管理系统所需的数据表。 3. 编写实体类,映射数据表。 4. 开发DAO层,提供对数据库的操作。 5. 编写Service层,实现业务逻辑。 6. 开发Controller层,处理用户请求,调用Service层成处理。 7. 编写前端页面,使用HTML、CSS和JavaScript实现酒店管理系统的界面。 这只是简要的步骤,具体的实现过程可能需要更多的代码和设计。如果您有任何具体问题,请随时告诉我,我将尽力帮助您。 ### 回答2: 当然可以帮您使用SSM框架来开发酒店管理系统。SSM框架是指Spring+SpringMVC+MyBatis的组合,它是一种轻量级的Java框架,可以帮助我们快速开发企业级应用程序。 在开发酒店管理系统时,您可以使用Spring作为容器管理各种Java对象,并提供事务管理和依赖注入的功能。SpringMVC可以帮助您搭建可扩展的Web应用程序,实现各种请求和响应的处理。而MyBatis则可以帮助您简化数据库操作,提供方便的对象关系映射。 在系统开发中,您可以根据酒店管理系统的需求进行系统设计和数据库建模。然后,您可以使用SSM框架提供的各种功能进行具体的开发工作。例如,您可以使用Spring提供的AOP功能来实现权限控制和日志记录。通过SpringMVC,您可以定义各种Controller和Interceptor来处理用户请求。而MyBatis则可以帮助您执行各种数据库操作,如增删改查等。 除了SSM框架,您还可以使用其他相关技术来增强系统的功能和用户体验。例如,您可以使用前端框架如Bootstrap来设计网页界面,或使用Redis等技术来提高系统的性能。 总之,SSM框架是一个强大且灵活的开发框架,适用于各种企业级应用程序的开发。使用SSM框架开发酒店管理系统可以提高开发效率和系统的可维护性,帮助您实现一个高效且功能备的酒店管理系统。 ### 回答3: 当然可以帮您用SSM框架写酒店管理系统。 SSM框架是指Spring+SpringMVC+MyBatis框架的组合,是当前Java Web开发中广泛应用的一套开发框架。酒店管理系统是一种常见的管理软件,用于管理酒店的房间、客户息、预订情况等。下面是一个实现酒店管理系统的简单步骤: 1. 确定系统需求:首先需要明确您对酒店管理系统的要求,比如需要管理哪些息,包括客房息、客户息、订单息等。 2. 数据库设计:根据需求设计数据库结构,包括建立相应的表和字段。比如可以建立客房表、客户表、订单表等。 3. 创建实体类:根据数据库设计创建对应的实体类,在实体类中定义属性和对应的get、set方法。 4. 创建DAO层:使用MyBatis的Mapper接口实现对数据库的访问,可以通过XML文件配置SQL语句实现对数据库的增删改查操作。 5. 创建Service层:在Service层实现业务逻辑的处理,比如查询客房息、预订客房等。可以在Service层调用DAO层的方法实现对数据库的访问。 6. 创建Controller层:使用SpringMVC框架处理用户的请求,将请求参数传递给对应的Service层进行处理,并返回相应的结果给前端。 7. 创建前端页面:使用HTML、CSS、JavaScript等技术实现前端页面的设计,通过AJAX与后端进行数据交互。 8. 进行系统测试:成系统开发后,进行相应的测试工作,包括单元测试、功能测试、性能测试等,确保系统的稳定性和安全性。 综上所述,使用SSM框架可以帮助您实现酒店管理系统,并且能够使开发过程更加高效和便捷。如果您需要更详细的指导和帮助,可以提供更多的系统需求,我们将尽力为您解答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值