一:项目结构
二:导入jar包
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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>BookManage</groupId> <artifactId>BookManage</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>BookManage Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <!-- spring版本号 --> <spring.version>4.0.2.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.2.2</version> </dependency> <!-- 导入java ee jar 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</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-oxm</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> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- 导入mybatis包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.6</version> </dependency> <!-- 导入Mysql数据库链接jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <!-- json数据 --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.1.0</version> </dependency> <!-- JSTL标签类 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</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 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.1</version> </dependency> <!-- dom4j--> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6</version> </dependency> </dependencies> <build> <finalName>BookManage</finalName> </build> </project>
三、配置文件
web,xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name></display-name> <filter> <filter-name>useChinese</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>useChinese</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/mybatis.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <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:config/mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>login/index.jsp</welcome-file> </welcome-file-list> </web-app>
jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql\://localhost\:3306/bookmanage?useUnicode\=true&characterEncoding\=UTF-8 jdbc.username=root #jdbc.password=111111 jdbc.password=root #定义初始连接数 initialSize=0 #定义最大连接数 maxActive=20 #定义最大空闲 maxIdle=20 #定义最小空闲 minIdle=1 #定义最长等待时间 maxWait=60000
mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!--加载注解驱动--> <mvc:annotation-driven/> <!--配置自动扫描--> <context:component-scan base-package="main.controller"/> <!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
mybatis.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!--注解--> <context:annotation-config/> <!--自动扫描,将扫描到的类转化为bean--> <context:component-scan base-package="main"/> <!--加载数据资源属性文件--> <!--引入jdbc配置--> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:config/jdbc.properties"/> </bean> <!--配置数据源--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!-- 初始化连接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="${minIdle}"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="${maxWait}"></property> </bean> <!----> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!--指定mybatis的xml配置文件位置--> <!--另一种定义sqlsession的引用的方式需要指定mybatis的配置文件位置,--> <!- <property name="configLocation" value="config/mybatis.xml"/> -> <property name="typeAliasesPackage" value="main.dao"/> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:main/dao/idao/*.xml"/> </bean> <!-- 扫描sqlSessionFactory和定义的dao接口的包 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- DAO接口所在包名,Spring会自动查找其下的dao--> <property name="basePackage" value="main.dao.idao"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> <!-- 6、声明式事务管理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!--<!– 7、注解事务切面 –>--> <!--<tx:annotation-driven transaction-manager="transactionManager"/>--> </beans>
四、定义数据库操作
实体Test.class
package main.dao.entity; /** * Created by swordbone on 2017/11/29. */ public class Test { private Integer id; private String name; private Integer age; private String nickname; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } @Override public String toString() { return "Test{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", nickName='" + nickname + '\'' + '}'; } }
testMapper.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="main.dao.idao.TestMapper"> <resultMap id="TestBaseResultMap" type="main.dao.entity.Test"> <id column="ID" property="id" jdbcType="INTEGER"/> <result column="NAME" property="name" jdbcType="VARCHAR"/> <result column="AGE" property="age" jdbcType="INTEGER"/> <result column="NICKNAME" property="nickname" jdbcType="VARCHAR"/> </resultMap> <select id="queryTest" parameterType="main.dao.entity.Test" resultMap="TestBaseResultMap"> SELECT * FROM test WHERE 1=1 <if test="id != null and id != ''"> AND ID=#{id,jdbcType=INTEGER} </if> <if test="name !=null and name != ''"> AND ID=#{name,jdbcType=VARCHAR} </if> </select> <insert id="createTest" parameterType="main.dao.entity.Test"> INSERT INTO test <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null"> ID, </if> <if test="name != null"> NAME, </if> <if test="age != null"> AGE, </if> <if test="nickname != null"> NICKNAME </if> </trim> <trim prefix="VALUES (" suffix=")" suffixOverrides=","> <if test="id != null"> #{id,jdbcType=INTEGER}, </if> <if test="name != null"> #{name,jdbcType=VARCHAR}, </if> <if test="age != null"> #{age,jdbcType=INTEGER}, </if> <if test="nickname != null"> #{nickname,jdbcType=VARCHAR} </if> </trim> </insert> <update id="updateTest" parameterType="main.dao.entity.Test"> UPDATE test <set> <if test="name != null and name !=''"> NAME=#{name}, </if> <if test="age !=null"> AGE=#{age,jdbcType=INTEGER}, </if> <if test="nickname != null and nickname !=''"> NICKNAME=#{nickname}, </if> </set> WHERE ID=#{id} </update> <delete id="deleteTest" parameterType="java.lang.Integer"> DELETE FROM test WHERE <if test="_parameter != null and _parameter !=''"> ID=#{id,jdbcType=INTEGER} </if> </delete> </mapper>
在同一目录下创建dao接口,注意接口中的方法名与map.xml文件中的sql语句id相同,参数返回值都要对应
TestMapper.class
package main.dao.idao; import main.dao.entity.Test; import org.springframework.stereotype.Repository; import java.util.List; /** * Created by swordbone on 2017/11/29. */ @Repository public interface TestMapper { Integer createTest(Test test); List<Test> queryTest(Test test); Integer updateTest(Test test); Integer deleteTest(Integer id); }
五、service层
service接口:TestService.class
package main.service.iService; import main.dao.entity.Test; import org.springframework.stereotype.Repository; import java.util.List; /** * Created by swordbone on 2017/11/29. */ public interface TestService { Integer createTest(Test test); List<Test> queryTest(Test test); Integer updateTest(Test test); Integer deleteTest(Integer id); }
service实现类:TestServiceImpl.class
package main.service.serviceImpl; import main.dao.entity.Test; import main.dao.idao.TestMapper; import main.service.iService.TestService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import java.util.List; /** * Created by swordbone on 2017/11/29. */ @Repository public class TestServiceImpl implements TestService { //自动装载dao接口 @Autowired private TestMapper testMapper; public Integer createTest(Test test) { return testMapper.createTest(test); } public List<Test> queryTest(Test test) { return testMapper.queryTest(test); } public Integer updateTest(Test test) { return testMapper.updateTest(test); } public Integer deleteTest(Integer id) { return testMapper.deleteTest(id); } }
六、jsp页面
新建test页面:create.jsp
<%-- Created by IntelliJ IDEA. User: 老牛鼻子的山 Date: 2017/11/30 Time: 14:37 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>create page</title> </head> <body> <form action="/test/create.do" method="post"> <table> <tr> <th>create new</th> </tr> <tr> <td>id:</td> <td><input name="id" type="text"/></td> </tr> <tr> <td>name:</td> <td><input name="name" type="text"/></td> </tr> <tr> <td>age:</td> <td><input name="age" type="text" /></td> </tr> <tr> <td>nickname:</td> <td><input name="nickname" type="text"/></td> </tr> <tr> <td><input type="submit" name="commit" value="create"/></td> </tr> </table> </form> </body> </html>
查询界面:query.jsp
<%-- Created by IntelliJ IDEA. User: 老牛鼻子的山 Date: 2017/11/30 Time: 10:50 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <html> <head> <title>query page</title> </head> <body> <form method="post" action="/test/query.do"> <label>id:</label><input type="text" name="id" value="${test.id}"/> <label>name:</label><input type="text" name="name" value="${test.name}"/> <input type="submit" value="查询"> </form><br> <a href="create.jsp" method="post">create</a><br> <table border="2"> <tr> <th>select</th> <th>id</th> <th>name</th> <th>age</th> <th>nickname</th> <th>update</th> <th>delete</th> </tr> <c:forEach items="#{list}" var="li"> <tr> <td><input type="checkbox" name="check" value="${li.id}"/> </td> <td>${li.id}</td> <td>${li.name}</td> <td>${li.age}</td> <td>${li.nickname}</td> <td><a href="/test/${li.id}/update.do">update</a></td> <td><a href="/test/${li.id}/delete.do">delete</a></td> </tr> </c:forEach> </table> </body> </html>
编辑页面:updatepage.jsp
<%-- Created by IntelliJ IDEA. User: 老牛鼻子的山 Date: 2017/12/4 Time: 11:42 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>updatepage</title> </head> <body> <form action="/test/updateForm.do" method="post"> <table> <tr> <th>update one</th> </tr> <tr> <td>id:</td> <td><input name="id" type="text" value="${test.id}" readonly/></td> </tr> <tr> <td>name:</td> <td><input name="name" type="text" value="${test.name}"/></td> </tr> <tr> <td>age:</td> <td><input name="age" type="text" value="${test.age}" /></td> </tr> <tr> <td>nickname:</td> <td><input name="nickname" type="text" value="${test.nickname}"/></td> </tr> <tr> <td><input type="submit" value="submit"></td> </tr> </table> </form> </body> </html>
页面入口index.jsp
<html> <body> <h2><a href="/test/create.jsp">create</a></h2> <h2><a href="/test/query.do">query</a> </h2> </body> </html>
七、controller
TestController.class
package main.controller.test; import main.dao.entity.Test; import main.service.iService.TestService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * Created by swordbone on 2017/11/29. */ @Controller @RequestMapping("/test") public class TestController { // 自动装载TestService接口 @Autowired TestService testService; // 查询所有的test @RequestMapping("/query") public String queryTest(ModelMap map, HttpServletRequest request, Test test){ List<Test> list = testService.queryTest(test); map.addAttribute("list",list); return null; } // 新建test @RequestMapping("/create") public String createTest(ModelMap map,HttpServletRequest request,Test test){ Integer returnnum = testService.createTest(test); map.addAttribute("returnnum",returnnum); return "redirect:/test/query.do"; } // 编辑test @RequestMapping("/{id}/update") public String updateTest (ModelMap map, HttpServletRequest request, Test test, @PathVariable String id){ Integer intId = Integer.valueOf(id); Test test1 = new Test(); test1.setId(intId); List<Test> list = testService.queryTest(test1); map.addAttribute("test",list.get(0)); return "/test/updatepage"; } // 更改test @RequestMapping("/updateForm") public String updateForm(ModelMap map,HttpServletRequest request,Test test){ Integer returnint = testService.updateTest(test); return "redirect:/test/query.do"; } // 删除test @RequestMapping("/{id}/delete") public String deleteTest(ModelMap map,HttpServletRequest request, Test test,@PathVariable String id){ Integer intId = Integer.valueOf(id); Integer returnnum = testService.deleteTest(intId); map.addAttribute("returnnum",returnnum); return "redirect:/test/query.do"; } }
项目页面:
index.jsp
点击query跳转到query.do
点击create跳转到create.jsp
新建一条数据
编辑
相关推荐
这个"SSM简单增删查改实例demo"是一个实战项目,旨在帮助开发者快速理解并掌握这三个框架的集成与应用。 1. **Spring**:作为核心容器,Spring管理着应用的组件,包括Bean的创建、配置和管理。它通过依赖注入...
这个项目包含了SSM的增删查改操作,同时还涉及到了图片上传和错误页面的处理,数据库操作则基于MyBatis的逆向工程。 首先,让我们深入了解SSM框架的组成部分: 1. **Spring**:这是一个全面的Java企业级应用开发...
在本项目"整合maven+spring+springmvc+mybatis实现ssm通用增删查改API"中,我们将深入探讨如何通过这些技术构建一个具有通用API功能的基础开发框架,以提升开发效率。 首先,Maven是Java项目管理工具,它帮助开发者...
在SSM整合中,MyBatis的配置文件`mybatis-config.xml`会定义数据库连接信息,而Mapper接口及对应的XML文件则用于编写SQL语句。 在CRUD操作中,Controller负责接收前端请求,调用Service层的方法进行业务处理,...
**SSM + Redis 增删改查小Demo详解** 在现代Java Web开发中,SSM(Spring、Spring MVC、MyBatis)框架组合与Redis缓存系统的集成应用非常广泛。本项目“maven+ssm+redis增删改查小demo”提供了一个基本的示例,展示...
本话题将详细讲解基于SSM(Spring、SpringMVC、MyBatis)框架的JSP如何实现数据的增删查改(CRUD)功能。 首先,`SSM`是一个流行的Java Web开发框架组合,它整合了Spring框架的依赖注入(DI)和AOP(面向切面编程)...
在这个整合案例中,我们将深入探讨如何将这三个框架协同工作,实现数据的增删查改功能。 首先,Spring作为核心容器,负责管理对象(Bean)的生命周期和依赖注入。在基于Spring注解的开发中,我们可以使用`@...
在这个“SSM+MySql增删查改”资源中,包含的核心知识点如下: 1. **Spring框架**:Spring是一个全面的后端开发框架,提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等功能。在SSM项目中,Spring作为核心容器...
在"完整SSM框架整合连接数据库的增删查改"项目中,开发者已经配置好了所有必要的部分,包括数据库连接池(如Druid或C3P0)、MyBatis的SqlSessionFactory、Mapper接口和XML配置文件。数据库连接配置通常在Spring的...
总结来说,"ssm、easyui的增删改查"项目是一个基础的Java Web教程,它涵盖了Spring、SpringMVC、MyBatis三大框架的整合应用,以及EasyUI的前端展示。这个项目可以帮助开发者掌握后端数据处理和前端界面设计的基本...
这个项目"ssm框架搭建——实现增删查改用户信息"旨在教你如何利用这些框架搭建一个基础的用户管理系统,具备基本的CRUD(创建、读取、更新、删除)功能。 首先,我们需要安装并配置好相关的开发环境。这里提到的是...
这个集成实例主要展示了如何将这三个框架整合起来,实现数据的增删查改功能。 首先,Spring是一个全功能的Java应用框架,它提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...
在"基于SSM架构用Java实现用户信息的增删查改"项目中,主要涉及以下几个步骤: 1. **环境搭建**:首先,你需要安装并配置Java运行环境、Maven(项目管理工具)、Tomcat(Web服务器)以及数据库(如MySQL)。 2. **...
SSM前后台分离技术增删改查项目是一个典型的Java Web应用程序示例,它结合了Spring、SpringMVC和MyBatis三个核心框架,用于构建高效、灵活的企业级应用。在这个项目中,开发者不仅实现了基本的数据操作功能,如增、...
SSM整合过程中,开发者通常会创建一个Spring配置文件来配置Struts2、Spring自身以及Mybatis的相关设置。这包括Spring管理的Bean定义、DataSource配置、SqlSessionFactory配置以及Struts2的Filter配置。同时,每个...
6. **Shiro与SSM整合**:将Shiro的过滤器链配置在Struts2的配置文件中,使得每次HTTP请求都会经过Shiro的过滤器进行权限检查。 7. **授权处理**:在业务逻辑中,Shiro可以根据当前登录用户的角色和权限,决定是否...
本文将深入探讨这些组件的核心功能以及如何在实际项目中进行增删查改(CRUD)操作。 首先,Spring框架是整个SSM架构的基础,它提供了一个全面的应用程序开发模型,包括依赖注入(DI)、面向切面编程(AOP)以及大量...
spring+springMVC+Mybatis实现学生管理系统增删改查,数据库中有两张表:student学生和class班级表。使用Myabtis逆向生成以及分页插件,以及批量操作,前端使用bootstrap框架搭建。
本文将详细介绍如何将这三个框架整合在一起,实现一个支持增删改查和模糊查询的基础应用。 **一、Spring框架** 1. **依赖注入(Dependency Injection,DI)**:Spring通过DI帮助开发者管理对象之间的依赖关系,...
这个项目是一个基于SSM的Maven工程,主要用于实现基本的CRUD(创建、读取、更新和删除)操作,展示了如何在实际应用中整合这三大框架。 首先,**Spring框架**是整个应用的基础,它提供了依赖注入(DI)和面向切面...