案例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的业务逻辑借口统一的管理。

springMVC与hibernate整合实例

springMVC与hibernate整合实例

SpringMVC的搭建一直以来接触到的都是SSH的框架,形成了MVC模式,本来并没有想着去弄另一个MVC模式,但现在springMVC模式很热,所以我也学习一下,首先我声明一下,这个框架我也是在网上找了一些资料才完成的,源文件等也是利用的网上的现成的,但是有对其进行修改。

下面来详细的说一说这个模式的搭建。

首先在spring中是以controller来作为控制器(相当于SSH中的action),其他的和SSH框架没有区别。

因为Spring是基于注解的,所以在整个的模式中都是采用注解的方式来处理,这个项目是用springMVC+hibernate一起来搭建的。

这个项目的搭建我花了很久的时间,也弄了蛮久才成功,希望日后能更加完善!理解更加的深入。

一:整体框架的结构图以及所需的jar包。

这里spring是3.0.1,hibernate是用的3.6,数据库是用的mysql 5.6 ,前提工作是要建立好一个数据库,我这里是名为springmvc的数据库来进行操作,这里是采用的hibernate自动更新的方式,所以可以不需要建表只需要建立起数据库就好。

项目框架的代码结构:二:开始搭建环境。

1,首先把上面所需的包添加进来后,我们要在/WEB-INF目录下的web.xml里面添加spring的监听器,以及相关的配置。

源码如下:<?xml version="1.0"encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><display-name>s3h3</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext*.xml</param-value> </context-param><listener><listener-class>org.springframework.web.context.ContextLoaderList ener</listener-class></listener><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</se rvlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-servlet.xml</param-value> </init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring</servlet-name><!-- 这里在配成spring,下边也要写一个名为spring-servlet.xml的文件,主要用来配置它的controller --> <url-pattern>*.do</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list></web-app>2,接下来可以编写spring的配置文件,来整合hibernate,主要的配置写在一个专门存放配置文件的源码目录下config文件夹下,这里的applicationContext.xml是spring的主要配置文件,包括数据源等的配置。

SpringMVC+Mybatis+MySQL项目搭建

SpringMVC+Mybatis+MySQL项目搭建

[置顶] Spring+SpringMVC+Mybatis+Mysql整合实例标签:SpringSpringMVCMybatisMysql整合2015-05-17 18:06 2183人阅读评论(10) 收藏举报分类:Spring(24)版权声明:本文为博主林炳文Evankaka原创文章,转载请注明出处/evankaka目录(?)[+]林炳文Evankaka原创作品。

转载请注明出处/evankaka本文要实现Spring+SpringMVC+Mybatis+Mysql的一个整合,实现了SpringMVC控制访问的页面,将得到的页面参数传递给Spring中的Mybatis的bean类,然后查找Mysql数据的功能,并通过JSP显示出来。

建议可以先看笔者另一文章Mybatis与Spring整合创建Web项目。

笔者觉得整合过程中问题比较多的还是Spring+Mybatis的整合,SpringMVC的整合还是比较简单。

SpringSpring 是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。

它是为了解决企业应用开发的复杂性而创建的。

Spring 使用基本的JavaBean 来完成以前只可能由EJB 完成的事情。

然而,Spring 的用途不仅限于服务器端的开发。

从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从Spring 中受益。

简单来说,Spring 是一个轻量级的控制反转(IoC )和面向切面(AOP )的容器框架。

SpringMVCSpring MVC 属于SpringFrameWork 的后续产品,已经融合在Spring Web Flow 里面。

Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

Spring视频教程 Spring MVC开发实例-基于SpringMVC、MyBatis、FreeMarker架构实战CMS大型门户网站

Spring视频教程 Spring MVC开发实例-基于SpringMVC、MyBatis、FreeMarker架构实战CMS大型门户网站

Spring视频教程Spring MVC开发实例—基于SpringMVC、MyBatis、FreeMarker架构实战CMS大型门户网站课程讲师:伍老师课程分类:Java适合人群:中级课时数量:80课时用到技术:SpringMCV、MyBatis、FreeMarker涉及项目:CMS大型门户网站更新程度:完毕Spring视频教程原文地址:/goods-296.html一、课程来源:华智经纬CMS是一套基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点,支持mysql、oracle、sqlserver等数据库。

强大、灵活的标签,用户自定义显示内容和显示方式完全生成全站静态页面,可自定义路径结构,全面提高页面访问速度基于目前流行的SpringMVC 及性能较Hibernate高的MyBatis二、课程适合的对象:Spring视频教程适合想要提升开发技能的Java开发人员,想要使用MyBatis+springMVC+Freemarker三、课程培养目标:1 熟练掌握并精通springMVC+MyBatis技术。

2 加强开发的内功修炼。

3 深入理解大型门户网站开发技术4 提供软件设计能力和软件开发能力,并在一定程度上增加项目管理经验。

6 掌握多个技术点,能够独立开发基于MyBatis+springMVC的大型门户网站四、培训定位:Spring视频教程适合于各个层次的Java开发人员,对于初级程序员来说,可以在短时间内迅速提高开发能力,掌握流行的技术,把握技术的发展脉络。

对于中高级程序员来说,本Spring视频教程可以在短时间内快速提升个人的开发能力,后期的架构和性能的课程,更是能够提升程序员的内功修炼,从而具有向架构师发展的能力。

五、课程讲解内容涵盖:1、项目介绍与需求分析2、基于powerDesigner的建模(概念模型物理模型)3 、适合MyBatis+springMVC的强大架构(多层架构)4、大型门户网站所用到的静态化技巧5、最新版本ckEditor3.6灵活使用6、基于javascript的经典树模型7、基于JQuery的AJAX应用8、MyBatis下使用树模型(数据结构)9、图片水印文字及水印图片操作技巧10、MyBatis下的经典物理删除技巧11、MyBatis下性能提升12、FreeMarker操作技巧13、基于junit测试驱动开发技术14、mybatis 缓存技术15、springMVC上传下载技巧16、基于MyBatis多表操作技巧六、Spring视频教程技术介绍:Spring3:著名的IOC框架,在本课程当中,除了使用Spring的IOC注入特性及Spring的MVC特性,还会重点阐述Spring与MyBatis的整合特性。

Java高级编程课程标准

Java高级编程课程标准

Java高级编程课程标准
课程目标1:熟悉SPringMVC常用注解的使用方法,掌握SPringMVC标签库的使
用方法,了解SpringMVC类型转换方法和SPringMVC文件上传与下载方法。

课程目标2,掌握MyBatiS框架的增删改查操作,了解MyBatiS关联映射的创建,掌握常用动态SQ1的使用方法,掌握基于注解的MyBatiS增删改查的实现,熟悉SSM框架的整合方法。

课程目标3:掌握使用EaSyU1框架、Bootstrap框架和Vue框架开发页面的方法。

三、课程目标与毕业要求的关系
1、课程目标与毕业要求的对应关系
参考《数学学院课程目标达成度评价方法》进行评价。

九、本课程各个课程目标的权重
依据第八部分中的课程目标达成度评价方法,计算得到本课程的各个课程目标的权重
如下:
根据学生的课堂表现、作业、平时测验和期末考试情况及教学督导的反馈,检验学生对本课程涉及的学科素养和学会反思的达成情况,及时对教学中的不足之处进行改进,调整教学指导策略;根据学生的课堂表现、作业、平时测验及期末考试成绩,检验本课程所支撑的毕业要求分解指标点的达成度情况;根据本课程所支撑的毕业要求分解指标点的达成度情况,在本学院教学指导委员会指导下,重新修订本课程大纲,实现持续改进。

十一、推荐教材及参考书目
1.推荐教材
⑴缪勇施俊,SPring+SpringMVCfMyBaties框架技术精读与整合案例[M].北京:清华大学出版社2019.6
2.参考书目
口]卢瀚王春斌,JavaWeb开发实战1200例(第I卷[M].北京:人民邮电出版社2012.3
⑵卢瀚王春斌,JavaWeb开发实战1200例(第∏卷[M].北京:清华大学出版社2017.5。

springboot整合springsecurity与mybatis-plus的简单实现

springboot整合springsecurity与mybatis-plus的简单实现

springboot整合springsecurity与mybatis-plus的简单实现2、数据库使⽤Mysql,使⽤mybatis-plus框架3、⼤致结构图如下:控制器⽤HelloController就⾏,因为使⽤mybatis-plus代码⽣成的有⼀些没⽤的配置4、使⽤依赖如下:spring-boot⽤的2.1.18 RELEASE5、application.properties配置⽂件如下:# 数据库驱动:spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# 数据库连接地址spring.datasource.url=jdbc:mysql:///rog?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai # 数据库⽤户名&密码:ername=rootspring.datasource.password=root#⽇志输出,使⽤默认的控制台输出mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl#mybatis plus 设置mybatis-plus.mapper-locations=classpath*:com/xxx/mapper/xml/*Mapper.xml#配置别名扫描mybatis-plus.type-aliases-package=com.xxx.entity6、mysql数据库这⾥使⽤了3张表,分别是user、role、user_role7、entity-实体类⼤致如下:注意需要对应数据库的id⾃动递增8、mapper包因为使⽤的mabits-plus代码⽣成所以对应的mapper,所以⽣成好是继承了BaseMapper,如果⼿动写的话,就需要继承BaseMapper查询数据库当前请求登录的⽤户,获取他所拥有的所有权限9、service@Service()public class UsersServiceImpl extends ServiceImpl<UsersMapper, Users> implements IUsersService, UserDetailsService { @Autowiredprivate UsersMapper usersMapper;@Overridepublic UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {QueryWrapper<Users> wrapper = new QueryWrapper<>();wrapper.eq("user_name",username);//根据页⾯传的⽤户名查找数据库判断是否存在该⽤户Users users = usersMapper.selectOne(wrapper);if (users==null){throw new UsernameNotFoundException("⽤户不存在");}List<Role> roles = usersMapper.findRoles(users.getId());List<SimpleGrantedAuthority> authorities = new ArrayList<>();//遍历当前⽤户的⾓⾊集合组装权限for (Role role : roles) {authorities.add(new SimpleGrantedAuthority(role.getName()));}return new User(username,users.getPassword(),authorities);//如果⽤户没有⾓⾊会NullPointerException}}需要实现 UserDetailsService接⼝重写 loadUserByUsername⽅法,做了⼀个简单逻辑10、测试是否连接上了数据库新增⼀个⽤户,数据新增成功返回row>0,表⽰已经连接数据库成功11、controller层写⼀个简单的控制器12、config包下配置⼀下权限认证框架配置@Configuration@MapperScan("com.xxx.mapper")public class SecurityConfig extends WebSecurityConfigurerAdapter {@Autowiredprivate UserDetailsService userDetailsService;@BeanPasswordEncoder passwordEncoder() {//使⽤明⽂密码:为了简单⽅便测试return NoOpPasswordEncoder.getInstance();//暗⽂密码:会⽤salt加密// return new BCryptPasswordEncoder();}@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception { //设置注⼊的⾃定义认证实现类userService,必须实现了UserDetailsService接⼝ erDetailsService(userDetailsService);}@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests()//.antMatchers需要写在 .anyRequest()之前/* anyRequest 已经包含了其他请求了,在它之后如果还配置其他请求也没有任何意义。

mybatis与spring的整合配置说明

mybatis与spring的整合配置说明

mybatis是ibatis的升级版,spring也有自带mybatis的orm。

所以,搭建ibatis的框架也会有多种方式(我这里mybatis是3.0的,ibatis是2.3的,spring是3.0的,数据库是mysql)。

下面介绍3中方式1,只是用mybatis3。

2,使用mybatis3+spring3(使用mybatis的SqlSessionFactory )。

3,使用ibatis2.3+spring(使用spring自带的ibatis)spring的orm包中只有ibatis,没有mybatis。

而mybatis和ibatis还是有些区别的,比如配置文件属性不同。

第一种方式(只使用mybatis):1)jar包:cglib-2.2.jarasm-3.1.jarmysql-connector-java-3.1.13.jarmybatis-3.0.5.jarjunit.jar2)mybatis配置文件:[html]view plaincopy1.<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//my//DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd">2.<configuration>3.<!-- 参数设置 -->4.<settings>5.<!-- 这个配置使全局的映射器启用或禁用缓存 -->6.<setting name="cacheEnabled"value="true"/>7.<!-- 全局启用或禁用延迟加载。

当禁用时,所有关联对象都会即时加载 -->8.<setting name="lazyLoadingEnabled"value="true"/>9.<!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。

黑马程序员资料参考

黑马程序员资料参考

目录北京黑马培训简介: (2)报名流程: (2)自学课程: (2)上课时间安排:(实行指纹打卡,迟到10天以上劝退!) (3)课程设置:(四个月集训) (3)培训费用: (3)师资力量:(部分) (3)往届课程参考: (6)黑马晨读资料: (14)(ref. full specialization) (22)CCP(communication[kə,mju:ni'keiʃən]control [kən'trəul]processor ['prəusesə]) 通信控制处理机 (27)MIPS(millions of instructions per second 每秒百万条指令 (30)学习路线图: (40)北京黑马培训 JAVA Android IOS北京黑马培训简介:报名流程:1.网上填写报名信息,并进入报名系统提交一封自荐信(3000字左右)2.下载基础测试,测试基础知识掌握情况。

(3天左右做完)3.根据基础测试结果,自学相应的技术视频4.需要写10篇技术blog、在黑马论坛与志同道合的朋友交流。

(积累技术分)5.技术储备好了,就可以参加入学考试了。

(一份试卷,一天内完成)6.预约老师,进行远程面试。

(面试时间30分钟以上,主要是技术性问题)自学课程:黑马程序员JavaEE+Android——开学前自学的Java课程(提供这些课程的视频下载)◇基础好:视频学习周期建议为5—10天,具体根据学生自学能力,自行合理安排时间。

第一阶段:Java基础(1-2天)●Java高级视频_IO输入与输出●Java高级视频_网络编程第二阶段:Java基础加强(3-4天)●2016年Java高新技术第三阶段:7k月薪面试题破解(2天)●交通灯管理系统视频●银行业务调度系统◇没有基础:视频学习周期建议为20-40天,具体根据学生自学能力,自行合理安排时间。

第一阶段:Java初级(8-15天)●Java开发前奏●Java编程基础●面向对象●多线程●JavaAPI第二阶段:Java基础(6-8天)●Java高级视频_IO输入与输出●图形用户界面GU●Java高级视频_网络编程第三阶段:Java基础加强(5-7天)●2016年Java高新技术第四阶段:7k月薪面试题破解(2-3天)●交通灯管理系统视频●银行业务调度系统上课时间安排:(实行指纹打卡,迟到10天以上劝退!)作息时间:早8:30——晚8:30早8:30——9:00 英语晨读时间,掌握软件开发常用词汇早9:00——12:00 上午上课时间12:00——14:00 午餐和午休时间14:00——17:00 下午上课时间17:00——18:00 晚餐时间18:00——20:30 晚自习时间课程设置:(四个月集训)第一阶段:Html+CSS+JavaScript基础第二阶段:JavaWEB+JavaMail开发技术+网上银行交易系统+网上在线支付第三阶段:Android核心基础第四阶段:Android高级+Git版本管理+linux+Webservice技术第五阶段:Android项目实战:手机卫士+321播放器+红孩子电子商城+植物大战僵尸+智能短信分类管理+豆瓣客户端+手机彩票等等第六阶段:就业面试与指导、现场招聘一个班级有7、8个讲师,其中3个主讲班型:大班70人左右上课形式:讲师一天讲5个小时左右,讲课过程中每敲一行代码,讲解一行代码;课下学员自己找时间练习。

SSM框架——详细整合教程

SSM框架——详细整合教程

SSM框架——详细整合教程SSM(Spring + SpringMVC + MyBatis)是Java Web开发中常用的框架组合,通过整合这三个框架,可以使得开发更加高效、灵活、易于维护。

下面将详细介绍SSM框架的整合步骤。

1.准备工作在开始整合之前,首先需要准备好相关的环境和工具。

确保已经安装了JDK、Tomcat和Maven等工具,并且熟悉基本的Java开发和Web开发知识。

2.创建Maven项目使用Maven创建一个空白的项目作为基础项目。

在项目的pom.xml文件中添加Spring、SpringMVC和MyBatis等相关的依赖。

3.配置Spring在Spring的配置文件中,通过注解或XML的方式进行相关配置。

配置文件主要包含以下内容:-配置数据源,用于连接数据库。

-配置事务管理器,用于管理数据库事务。

- 配置Spring的扫描包,将相关的类自动注入到Spring容器中。

- 配置Spring的AOP(面向切面编程)功能,用于处理事务、日志等公共逻辑。

4.配置SpringMVC在SpringMVC的配置文件中,主要进行以下配置:-配置视图解析器,用于解析并返回视图。

-配置静态资源的处理器,用于处理静态资源文件(如CSS、JS等)。

-配置控制器映射,将请求与相应的控制器方法进行映射。

5.配置MyBatis在MyBatis的配置文件中,主要进行以下配置:- 配置数据源,与Spring的数据源配置保持一致。

- 配置MyBatis的映射文件,将Java对象与数据库表进行映射。

- 配置MyBatis的扫描包,将相关的Mapper接口自动注入到Spring容器中。

6.编写实体类和持久层代码在Java代码中,编写实体类和持久层(DAO)的代码。

实体类用于表示数据库的表结构,持久层代码用于进行数据库的操作。

7.编写服务层和控制器代码在Java代码中,编写服务层(Service)和控制器层(Controller)的代码。

Spring事务管理及与mybatis整合的事务管理

Spring事务管理及与mybatis整合的事务管理

数据访问事务处理in Spring+Mybatis3.0事务---保证了用户的每一次操作都是可靠的,即使出现了异常的访问,也不至于破坏后台数据的完整性;Java事务简介事务必须符合ISO/IEC所定制的ACID原则1)A(atomicity):原子性在事务执行的过程中,任何的失败就将导致事务的任何修改失效,2)C(consistency):一致性事务回滚时,事务所执行的内容必须恢复到初始状态,即事务执行前的状态3)I(isolation):隔离性事务执行过程中对数据的修改,在提交之前的数据对其他事务不可见4)D(durability):持久性已经提交的数据在事务执行失败时,数据的状态都是正确的.事务分类:全局事务(分布式事务):由应用服务器来管理(如JTA),同时可以用于多个事务性的资源;本地事务本地事务和资源相关,主要通过JDBC来实现在实际应用中,存在一种容器管理事务,容器事务主要是由javaEE应用服务器提供,容器事务大多给予JTA完成,事实上这是在容器中覆盖了JDBC和JTA事务.事务特性分析(use spring)TransactionDefinition 接口来定义事务属性。

Code:public interface TransactionDefinition{int getIsolationLevel();int getPropagationBehavior();int getTimeout();boolean isReadOnly();}事务机制a)事务隔离级别隔离级别是指若干个并发的事务之间的隔离程度。

TransactionDefinition 接口中定义了五个表示隔离级别的常量:TransactionDefinition.ISOLATION_DEFAULT(默认值):表示使用底层数据库的默认隔离级别。

对大部分数据库而言,通常这值就是TransactionDefinition.ISOLATION_READ_COMMITTED。

  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标签来创建的。

相关文档
最新文档