案例9:Spring整合MyBatis与Spring MVC+EasyUI实现电子商城后台用户管理

合集下载

SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法

SpringMVC+Spring+Hibernate框架整合原理,作用及使用方法

SpringMVC+Spring+Hibernate框架整合原理,作⽤及使⽤⽅法SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层使⽤spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎原理:SpringMVC:1.客户端发送请求到DispacherServlet(分发器)2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller3.Controller调⽤业务逻辑处理后,返回ModelAndView4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图5.视图负责将结果显⽰到客户端Spring:我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们中的类,当然也包括service dao⾥⾯的),有了这个机制,我们就不⽤在每次使⽤这个类的时候为它初始化,很少看到关键字new。

另外spring的aop,事务管理等等都是我们经常⽤到的。

Mybatis:mybatis是对jdbc的封装,它让数据库底层操作变的透明。

mybatis的操作都是围绕⼀个sqlSessionFactory实例展开的。

mybatis通过配置⽂件关联到各实体类的Mapper⽂件,Mapper⽂件中配置了每个类对数据库所需进⾏的sql语句映射。

在每次与数据库交互时,通过sqlSessionFactory拿到⼀个sqlSession,再执⾏sql命令。

使⽤⽅法:要完成⼀个功能:1. 先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。

2. 写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进⾏的那些操作,⽐如 insert、selectAll、selectByKey、delete、update等。

spring整合mybatis错误:classpathresource[configspr。。。

spring整合mybatis错误:classpathresource[configspr。。。

spring整合mybatis错误:classpathresource[configspr。

spring 整合Mybatis运⾏环境:jdk1.7.0_17+tomcat 7 + spring:3.2.0 +mybatis:3.2.7+ eclipse 错误:class path resource [config/spring/springmvc.xml] cannot be opened because it does not exist 错误原因:找不到我的springmvc.xml,在下⾯web.xml中是我引⽤路径,⽹上找到问题classpath指向路径不是resource路径,所以⼀直找不到我的xml⽂件, classpath:到你的class路径中查找⽂件, classpath*:不仅包含class的路径,还包括jar⽂件中(class路径)进⾏查找 解决办法:在classpath后⾯在上“*” 可解决问题,“classpath*:springmvc.xml” 错误代码:1 2017-04-05 08:15:10 [org.springframework.web.servlet.DispatcherServlet]-[INFO] FrameworkServlet 'springmvc': initialization started2 2017-04-05 08:15:10 [org.springframework.web.context.support.XmlWebApplicationContext]-[INFO] Refreshing WebApplicationContext for namespace 'springmvc-servlet': startup date [Wed Apr 05 08:15:10 CST 2017]; parent: Root WebApplica3 2017-04-05 08:15:10 [org.springframework.beans.factory.xml.XmlBeanDefinitionReader]-[INFO] Loading XML bean definitions from class path resource [springmvc.xml]4 2017-04-05 08:15:10 [org.springframework.web.servlet.DispatcherServlet]-[ERROR] Context initialization failed5 org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [springmvc.xml]; nested exception is java.io.FileNotFoundException: class path resource [springmvc.xml] canno6 at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)7 at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)8 at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)9 at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)10 at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)11 at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)12 at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)13 at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)14 at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)15 at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)16 at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:647)17 at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:598)18 at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:661)19 at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:517)20 at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:458)21 at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:138)22 at javax.servlet.GenericServlet.init(GenericServlet.java:160)23 at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)24 at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)25 at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:865)26 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)27 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)28 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)29 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)30 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)31 at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)32 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)33 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)34 at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)35 at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)36 at .JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)37 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)38 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)39 at ng.Thread.run(Thread.java:722)40 Caused by: java.io.FileNotFoundException: class path resource [springmvc.xml] cannot be opened because it does not exist41 at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157)42 at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)43 ... 33 more 相关代码:web.xml 配置:1<?xml version="1.0" encoding="UTF-8"?>2<web-app xmlns:xsi="/2001/XMLSchema-instance" xmlns="/xml/ns/javaee" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" 3<display-name>Springmvc_Mybits_store</display-name>4<!-- 加载spring容器 -->5<context-param>6<param-name>contextConfigLocation</param-name>7<param-value>classpath:applicationContext-*.xml</param-value>8</context-param>9<!-- 监听器,扫描通配符 -->10<listener>11<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>12</listener>13<!-- 前端控制器配置 -->14<servlet>15<servlet-name>springmvc</servlet-name>16<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>17<!--加载springmvc.xml配置-->18<init-param>19<param-name>contextConfigLocation</param-name>20<param-value>classpath:springmvc.xml</param-value>21</init-param>22</servlet>23<!-- servlet映射 -->24<servlet-mapping>25<servlet-name>springmvc</servlet-name>26<url-pattern>*.action</url-pattern>27</servlet-mapping>28<welcome-file-list>29<welcome-file>index.html</welcome-file>30<welcome-file>index.htm</welcome-file>31<welcome-file>index.jsp</welcome-file>32<welcome-file>default.html</welcome-file>33<welcome-file>default.htm</welcome-file>34<welcome-file>default.jsp</welcome-file>35</welcome-file-list>36</web-app>。

SpringBoot、Mybatis、Layui 集成前后台高效开发

SpringBoot、Mybatis、Layui 集成前后台高效开发

Spring: the source for modern java
Spring Framework 5
未来趋势:Spring Boot+ SpringWeb Flux + Spring Cloud.
Spring MVC基于Servlet API构建,并使用一个同步阻塞I / O体系结构和一个单线程请求线程模型的Web 框架 Spring WebFlux是一个非阻塞的Web框架,从该组建立起,利用多核,下一代处理器和大量并发连接。
Spring Boot
Spring Cloud
Spring Cloud常用组件
Spring Cloud集成相关优质项目推荐
微服务架构集大成者,云计算最佳业务实践 这些项目是Spring Cloud官方项目或对Spring Cloud进行了有益的补充以及基于Spring Cloud最佳实践
Spring Cloud Data Flow
• 2. SpringCloud大部分的功能插件都是基于SpringBoot去实现的,SpringCloud关注于全局的微服务整合和管理,将多个
springBoot单体微服务进行整合以及管理;SpringCloud依赖于springBoot开发,而SpringBoot可以独立开发;
Spring、SpringMvc、SpringBoot和SpringCloud关系
Spring作为专业的开发web项目的开源框架,SpringMVC为内部的一个模块环节,同样采取MVC设计模式。
• 什么是SpringBoot
SpringBoot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务; 特点:简单易用,初学者和大牛都可以轻松上手,其中的注解会给使用者提供方便; SpringBoot对第三方技术进行了很好的封装和整合,提供了大量第三方接口; 可以通过依赖自动配置,不需要XML等配置文件

Spring和MyBatis整合自动生成代码里面text类型遇到的坑

Spring和MyBatis整合自动生成代码里面text类型遇到的坑

Spring和MyBatis整合⾃动⽣成代码⾥⾯text类型遇到的坑Spring和MyBatis整合以后,使⽤⾃动⽣成代码⼯具⽣成dao和mapper配置⽂件,⽣成步骤如下(以Intelli idea为例)。

1.编写⽣成代码配置⽂件generatorConfig.xml。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfigurationPUBLIC "-////DTD MyBatis Generator Configuration 1.0//EN""/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><classPathEntry location="D:\dev\maven\repository\mysql\mysql-connector-java\5.1.39\mysql-connector-java-5.1.39.jar"/><context id="DB2Tables" defaultModelType="flat" targetRuntime="MyBatis3"><commentGenerator><property name="suppressDate" value="true"/><!-- 是否去除⾃动⽣成的注释 true:是: false:否 --><property name="suppressAllComments" value="false"/></commentGenerator><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/mycollege?characterEncoding=utf-8"userId="root"password="root"></jdbcConnection><javaTypeResolver><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- ⽣成模型的包名和位置 --><javaModelGenerator targetPackage="com.cx.elearnning.model"targetProject="src/main/java"><property name="enableSubPackages" value="true"/><property name="trimStrings" value="true"/></javaModelGenerator><!-- generate xml --><sqlMapGenerator targetPackage="/"targetProject="src/main/resources/mapper"><property name="enableSubPackages" value="true"/></sqlMapGenerator><!-- generate Mapper --><javaClientGenerator type="XMLMAPPER" targetPackage="com.cx.elearnning.dao"targetProject="src/main/java"><property name="enableSubPackages" value="true"/></javaClientGenerator><!--需要⾃动⽣成的表名和对应的model名--><table tableName="sys_user" domainObjectName="SysUser"></table></context></generatorConfiguration>2.配置如下maven运⾏命令。

《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》_课后习题

《Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)》_课后习题

第一章【思考题】1、请简述Spring框架的优点。

2、请简述什么是Spring的IoC和DI。

【答案】1、Spring框架的优点如下:(1)非侵入式设计:Spring是一种非侵入式(non-invasive)框架,它可以使应用程序代码对框架的依赖最小化。

(2)方便解耦、简化开发:Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,大大的降低了组件之间的耦合性。

(3)支持AOP:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性。

(4)支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无需手动编程。

(5)方便程序的测试:Spring提供了对Junit4的支持,可以通过注解方便的测试Spring 程序。

(6)方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。

(7)降低了Java EE API的使用难度:Spring对Java EE开发中非常难用的一些API (如:JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低。

2、IoC的全称是Inversion of Control,中文名称为控制反转。

控制反转就是指在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring 容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。

这样,控制权由应用代码转移到了Spring容器,控制权发生了反转。

DI的全称是Dependency Injection,中文称之为依赖注入。

它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。

从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入。

Java EE轻量级框架应用实战:SSM框架(Spring

Java EE轻量级框架应用实战:SSM框架(Spring
态SQL的元素 3.2使用动态SQL完成多条件查询 3.3使用动态SQL实现更新操作 3.4使用foreach元素完成复杂查询 3.5 bind元素
第4章 MyBatis框架的关联映射
4.1关联映射 4.2一对一(association) 4.3一对多(collection) 4.4多对多(collection) 4.5 resultMap自动映射级别
框架的数据库 开发及事务管 理
3 第10章
MyBatis与 Spring的框架 整合
4 第11章初识
Spring MVC 框架
5
第12章数据交 互与绑定
第13章文件上传和下 载与拦截器机制
第14章深入使用 Spring MVC框架
第15章 SSM框架整 合与项目案例
附录A贯穿案例:百 货中心供应链管理系 统
目录分析
1
内容简介
2
第1章初识 MyBatis框架
3 第2章
MyBatis框架 的核心配置
4
第3章动态SQL
5 第4章
MyBatis框架 的关联映射
第6章初识Spring 框架
第5章深入使用 MyBatis框架
第7章 Spring框架 中的Bean
1
第8章 Spring AOP
第9章 Spring 2
本书详细讲解Java EE中使用最多的Spring、Spring MVC和MyBatis(简称SSM)三大框架的基本知识和应 用。随着互联的迅猛发展,SSM框架被越来越多地应用于企业级开发之中,其发展势头已经超过大部分Java Web 框架,稳居榜首。本书以实用性为原则,采用课堂实录的形式,以任务为驱动,理论与实践相结合,重点讲解 SSM框架在企业开发中常用的核心技术,分别讲解MyBatis、Spring和Spring MVC三大框架的精髓内容。在内容 上逐层深入,而非一次铺开。"百货中心供应链管理系统”案例贯穿始终,利用各章所学技能对其功能进行实现或 优化,让读者在学习技能的同时获取项目开发经验,加深读者对技术的理解和掌握程度。本书提供完善的免费配 套资源和支持服务,包括电子教案(PPT)、案例素材、源代码、各章上机练习与课后作业参考答案、教学设计、 教学大纲等,希望带给读者全方位的学习体验,可登录电子工业出版社华信资源()下载使用。本书既可作为高 等院校本、专科计算机相关专业的程序设计教材,也可作为Java技术的培训图书,适合广大编程爱好者阅读与使 用。

SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse普通版)

SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse普通版)

SSI框架搭建SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6编号:SSI-SMVC3-S3-I3版本:V1.0级别:公开编写时间:2016-02-17目录1 导言 (1)1.1 目的 (1)1.2 范围 (1)1.3 说明 (1)2 搭建SpringMVC (2)2.1 搭建所需jar包 (2)2.2 其他依赖包 (3)2.3 搭建步骤 (4)2.3.1 创建项目 (4)2.3.2 导入jar包 (6)2.3.3 配置web.xml (7)2.3.4 配置spring-servlet.xml (9)2.3.5 配置applicationContext.xml (10)2.3.6 配置log4j.properties (10)3 整合mybatis (11)3.1 整合所需jar包 (11)3.2 其他依赖包 (11)3.3 整合步骤 (11)3.3.1 导入jar包 (11)3.3.2 配置config.properties (12)3.3.3 配置spring-dataSource.xml (12)3.3.4 配置applicationContext.xml (15)3.3.5 配置mybatis-config.xml (16)3.3.6 创建实体model (17)3.3.7 创建实例化dao (19)3.3.8 创建业务服务service (21)3.3.9 创建控制层controller (23)3.3.10 页面代码 (28)3.3.11 启动项目 (37)1导言1.1 目的本文档是根据个人的工作经验搭建的轻量级SSI框架,也是实际应用中比较全面的基础框架,用于指导SSI框架初学者学习搭建SSI框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。

1.2 范围本次框架搭建的版本是SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6,数据库采用的是mysql,在eclipse开发工具下搭建直接搭建的web项目,页面采用的是h5,ajax实现数据访问,如果页面为jsp等,则修改controller的返回类型即可。

SpringMvc与Mybatis整合

SpringMvc与Mybatis整合

SpringMvc与Mybatis整合1.目的学习SpringMvc与Mybatis怎样整合在一起。

2.环境准备1)jdk版本:jdk1.7或jdk1.82)IDE:eclipse3)Tomcat:Apache Tomcat v7.04)数据库:mysql及navicat for mysql3.整合3.1.新建一个web项目注意:这里选择Dynamic Web Module 2.5 ,因为2.5是主流,默认在eclipse的WebContent \WEB-INF\目录下创建web.xml的,而3.0则默认没有web.xml文件3.2.添加整合所需的jar包注:所有的包已经放到文件jar里面了3.3.web.xml配置3.3.1.代码如下:<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance /schema/cache/springmodules-cache.xsd /schema/cache/springmodules-ehcache.xsd"xmlns="/xml/ns/javaee"xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5"><display-name>SpringMvc-Mybatis</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- Spring配置文件 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- 编码过滤器 --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><async-supported>true</async-supported><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- Spring监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 添加对springmvc的支持 --><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</se rvlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value> </init-param><load-on-startup>1</load-on-startup><async-supported>true</async-supported></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>3.3.2.代码详解:1)Spring配置文件:applicationContext.xml(下面会介绍)2)编码过滤器:选择UTF-8,解决中文乱码问题3)Spring监听器:org.springframework.web.context.ContextLoaderListener4)添加对springmvc的支持SpringMVC配置文件:spring-mvc.xml(下面会介绍)3.4.spring-mvc.xml配置3.4.1.代码如下:<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:aop="/schema/aop"xmlns:context="/schema/context"xmlns:jee="/schema/jee"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/aop/schema/aop/spring-aop-4.0.xsd/schema/beans/schema/beans/spring-beans-4.0.xsd/schema/context/schema/context/spring-context-4.0.xsd /schema/jee/schema/jee/spring-jee-4.0.xsd/schema/tx/schema/tx/spring-tx-4.0.xsd"><!-- 使用注解的包,包括子集 --><context:component-scan base-package="com.java1234.controller"/><!-- 视图解析器 --><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewReso lver"><property name="prefix"value="/"/><property name="suffix"value=".jsp"></property></bean></beans>3.4.2.代码详解:1)使用注解的包,包括子集:自动扫描"com.java1234.controller"包下的所有类,作为controller层的类2)视图解析器:controller层返回的数据会解析到相应的 .jsp里面3.5.applicationContext.xml配置3.5.1.代码如下:<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:p="/schema/p"xmlns:aop="/schema/aop"xmlns:context="/schema/context"xmlns:jee="/schema/jee"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/aop/schema/aop/spring-aop-4.0.xsd/schema/beans/schema/beans/spring-beans-4.0.xsd/schema/context/schema/context/spring-context-4.0.xsd /schema/jee/schema/jee/spring-jee-4.0.xsd/schema/tx/schema/tx/spring-tx-4.0.xsd"><!-- 自动扫描 --><context:component-scan base-package="com.java1234.dao"/><context:component-scan base-package="com.java1234.service"/><!-- 配置数据源 --><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"value="com.mysql.jdbc.Driver"/><property name="url"value="jdbc:mysql://localhost:3306/db_mybatis2"/><property name="username"value="root"/><property name="password"value="123456"/></bean><!-- 配置mybatis的sqlSessionFactory --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource"ref="dataSource"/><!-- 自动扫描mappers.xml文件 --><property name="mapperLocations"value="classpath:com/java1234/mappers/*.xml"></property><!-- mybatis配置文件 --><property name="configLocation"value="classpath:mybatis-config.xml"></property></bean><!-- DAO接口所在包名,Spring会自动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage"value="com.java1234.dao"/><property name="sqlSessionFactoryBeanName"value="sqlSessionFactory"></property></bean><!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionMana ger"><property name="dataSource"ref="dataSource"/></bean><!-- 配置事务通知属性 --><tx:advice id="txAdvice"transaction-manager="transactionManager"> <!-- 定义事务传播属性 --><tx:attributes><tx:method name="insert*"propagation="REQUIRED"/><tx:method name="update*"propagation="REQUIRED"/><tx:method name="edit*"propagation="REQUIRED"/><tx:method name="save*"propagation="REQUIRED"/><tx:method name="add*"propagation="REQUIRED"/><tx:method name="new*"propagation="REQUIRED"/><tx:method name="set*"propagation="REQUIRED"/><tx:method name="remove*"propagation="REQUIRED"/><tx:method name="delete*"propagation="REQUIRED"/><tx:method name="change*"propagation="REQUIRED"/><tx:method name="get*"propagation="REQUIRED"read-only="true"/><tx:method name="find*"propagation="REQUIRED"read-only="true"/><tx:method name="load*"propagation="REQUIRED"read-only="true"/><tx:method name="*"propagation="REQUIRED"read-only="true" /></tx:attributes></tx:advice><!-- 配置事务切面 --><aop:config><aop:pointcut id="serviceOperation"expression="execution(* com.java1234.service.*.*(..))"/> <aop:advisor advice-ref="txAdvice"pointcut-ref="serviceOperation"/></aop:config></beans>3.5.2.代码详解:1)自动扫描:自动扫描"com.java1234.dao"和"com.java1234.service"包下的所有类,作为dao层和service层的类2)配置数据源:就是连接数据库,包括driverClassName、url、username、password这四项3)整合最重要①配置mybatis的sqlSessionFactory:作为整合的桥梁,以前我们要自己获取,现在由spring管理,简单方便"org.mybatis.spring.SqlSessionFactoryBean"由lib目录下的mybatis-spring-1.2.0.jar包提供②引入数据源"dataSource"③自动扫描mappers.xml文件,即映射文件④mybatis配置文件:mybatis-config.xml(下面会介绍)4)DAO接口所在包名,Spring会自动查找其下的类:注入"sqlSessionFactoryBeanName"5)(事务管理):spring用到的,引入数据源"dataSource"6)配置事务通知属性7)配置事务切面注:(关于spring事务管理配置:这里简单介绍了一下,具体介绍网上有很多,这里不详细介绍了,大家想深入了解就百度一下吧)事务在系统服务启动的时候就加载了,一般的,我们把事务配在service层,利用service的业务逻辑借口统一的管理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

案例9:Spring整合MyBatis与Spring MVC+EasyUI实现电子商城后台用户管理步骤1:在第五章5.8小节上将项目digital-ssm复制一份并重新命名为digital-um,并将项目digital-um的部署名称修改为“/digital-um”,然后将jackson-annotations-2.6.0.jar、jackson-core-2.6.0.jar和jackson-databind-2.6.0.jar这三个jar包复制到项目的WebRoot\WEB-INF\lib目录中,用于支持Spring MVC实现自动Json格式数据转换。

电子商城的用户和权限管理模块的目录结构如图所示->权限管理模块的目录结构com.digital.controller包用于存放控制器类,com.digital.service包用于存放业务逻辑层接口,com.digital.service.impl包用于存放业务逻辑层接口的实现类,com.digital.dao包用于存放数据访问层接口,com.digital.mapping包用于存放SQL映射的XML文件,com.digital.pojo包用于存放实体类,com.digital.interceptor包用于存放拦截器类,com.digital.util包用于存放工具类。

applicationContext.xml为Spring框架使用的配置文件,springmvc.xml为Spring MVC框架使用的配置文件,admin_login.jsp为管理员后台登录页,usermanager.jsp为管理员登录成功后显示的用户和权限管理页,adminlist.jsp为管理员列表页,userlist.jsp为普通用户列表页。

Easyui目录下的文件或子目录下的文件为使用Easy UI控件所需的js、css等文件。

步骤2:创建实体类在com.digital.pojo包中,依次创建实体类UserInfo.java、AdminInfo.java、Functions.java、Powers.java、TreeNode.java。

步骤3:创建DAO接口及相应的SQL映射文件在com.digital.dao包中依次创建接口UserInfoDAO.java、AdminInfoDAO.java、FunctionsDAO.java和PowersDAO.java。

在com.digital.mapping包中创建SQL映射文件userInfoMapper.xml,实现接口UserInfoDAO中的方法;创建SQL映射文件adminInfoMapper.xml,实现接口AdminInfoDAO中的方法;创建SQL映射文件functionsMapper.xml,实现接口FunctionsDAO中的方法;创建SQL映射文件powersMapper.xml,实现接口PowersDAO中的方法。

步骤4:创建Service接口及实现类在com.digital.service包中依次创建业务逻辑层接口UserInfoService.java、AdminInfoService.java、FunctionsService.java和PowersService.java。

这些接口中声明的方法分别与接口UserInfoDAO、AdminInfoDAO、FunctionsDAO和PowersDAO相同。

在com.digital.service.impl包中依次创建接口UserInfoService、AdminInfoService、FunctionsService.j和PowersService的实现类UserInfoServiceImpl、AdminInfoServiceImpl、FunctionsServiceImpl和PowersServiceImpl,并实现接口中的方法。

步骤5:创建拦截器在com.digital.interceptor包中创建拦截器AdminLoginInterceptor,实现HandlerInterceptor接口。

为了让拦截器起作用,还需在Spring MVC配置文件中配置拦截器。

步骤6:管理员登录管理员登录页admin_login.jsp如图所示。

页面admin_login.jsp使用了Easy UI框架进行布局,为了使用Easy UI框架,需要在页面开始部分的<head></head>标签中引入EasyUI的相关css和js文件。

id为“adminLoginDlg”的<div>标签定义了管理员登录表单,表单的id为“adminLoginForm”;id为“bb”的<div>标签定义了登录和重置两个按钮。

在管理员登录表单中输入用户名和密码后,单击“登录”按钮,执行JavaScript函数checkAdminLogin(),函数中使用jQuery将请求提交到“admininfo/login”,即执行com.digital.controller包中的控制类AdminInfoController中login方法。

步骤7:用户和权限管理首页面在管理员登录页中,输入用户名“admin”和密码“123456”,登录成功后,就打开了用户和权限管理首页面usermanager.jsp,如图所示。

为了使用Easy UI框架,需要在页面开始部分的<head></head>标签中引入EasyUI的相关css和js文件。

<body></body>部分通过class属性来使用Easy UI的layout控件,用于生成页面的布局。

layout控件的左侧使用Easy UI的Tree控件来显示树型菜单,通过<ul>标签定义Tree,其id为“tt”,再使用javascript为Tree加载数据。

Tree的数据加载通过其url属性值“admininfo/getTree?adminid=${sessionScope.admin.id}”完成,即调用AdminInfoController类的getTree方法。

步骤8:用户管理模块在usermanager.jsp页面中,单击Tree上的“用户列表”节点,打开用户列表页userlist.jsp,如图所示。

1.用户列表显示功能实现在userlist.jsp页面中使用了Easy UI的DataGrid控件来显示用户列表,该控件是通过table标签来创建的。

接着,创建工具栏和搜索栏。

再通过table标签使用javascript来创建DataGrid控件。

将DataGrid控件的singleSelect属性设置为“false”以允许多选,pagination属性设置为“true”以允许分页,pageSize属性设置初始每页记录数(即页大小),pageList设置可供选择的页大小,rownumbers属性设置为“true”以显示行号,fit属性设置为“true”以自适应显示数据,toolbar属性设置为“#userListTb”为datagrid 添加工具栏,header属性设置为“#searchUserListTb”为datagrid标头添加搜索栏,设置columns属性以指定datagrid显示的列,设置queryParams 属性以指定查询条件(默认值为{}),DataGrid控件数据源通过url属性来指定,此处设置为“userinfo/userlist”,即将请求发送到UserInfoController类的userlist方法。

步骤9:用户管理模块-用户查询功能实现在userlist.jsp页面的搜索栏中,输入客户名称,单击“查找”按钮,会根据客户名称进行模糊查询,并将查询结果显示在DataGrid控件中。

例如,在客户名称中输入“m”,单击“查找”按钮,查询结果如图所示。

单击“查找”按钮时,会执行javascript函数searchUserInfo()。

在函数searchUserInfo中,首先获取输入的客户名称,然后使用DataGrid控件的load方法,因为指定了参数userName,将取代queryParams属性。

当传递参数执行查询时,load方法将从服务器加载新的数据,此时将重新执行UserInfoController类的userlist 方法,并将参数userName传递到方法中,再使用查询获得的新数据重新绑定DateGrid控件,以显示查询结果。

步骤10:用户管理-启用和禁用用户功能实现在userlist.jsp页面显示用户列表的DateGrid控件中,选中若干条记录,单击“启用”或“禁用”按钮,可以修改用户的状态。

单击“启用”或“禁用”按钮后,将执行javascript函数SetIsEnableUser。

SetIsEnableUser函数的参数flag表示执行启用还是禁用操作,等于1时启用用户,等于0时禁用用户。

在SetIsEnableUser函数中,首先获取选中行的用户id号,并将其保存到变量uids中,然后通过$.post方法提交请求“userinfo/setIsEnableUser”,即执行UserInfoController类的setIsEnableUser方法,并将参数uids和flag 传递过去。

步骤11:用户管理-启用和禁用用户功能实现在setIsEnableUser方法中。

首先将参数uids中的id号封装到List<Integer>类型类型的变量ids中然后创建Map类型对象params,以向SQL映射文件userInfoMapper.xml中的updateUserStatus方法传递参数,接着向params中添加参数ids和flag再调用业务接口userInfoService的updateUserStatus方法,将数据表user_info的status字段设置为1(启用)或0(禁用)。

最后根据执行结果,向前端页面发送信息。

前端页面userlist.jsp中的javascript函数SetIsEnableUser根据服务器的返回信息进行判断,如果执行成功,则调用DataGrid控件的reload方法,重新执行UserInfoController类的setIsEnableUser方法,重新获取数据以更新用户列表。

步骤12:管理员权限管理模块在usermanager.jsp页面中,单击Tree上的“管理员列表”节点,打开管理员列表页adminlist.jsp,如图所示。

1.管理员列表显示功能实现在adminlist.jsp页面中使用了Easy UI的DataGrid控件来显示管理员列表,该控件是通过table标签来创建的。

相关文档
最新文档