原创内容,转载请注明出处
1.概述
maven项目目录如下
src/main/java:主要java文件路径
src/main/resources:主要资源文件路径
src/test/java:java测试文件目录
src/test/resources:java测试资源文件目录
com.cygoat.controller:存放spring mvc controller.java文件
com.cygoat.dao:存放mybaitis Mapper.java文件
com.cygoat.mapper:存放mybaitis Mapper.xml文件
com.cygoat.model:存放Model.java文件
com.cygoat.service:存放业务层接口类Manager.java文件
com.cygoat.service.impl:存放业务层实现类ManagerImpl.java文件
2.maven web项目创建
1.新建项目SSM
2.点击下一步
3.点击完成,创建项目成功。
3.spring和mybatis整合
1.pom.xml增加依赖jar包
<properties> <spring.version>3.2.13.RELEASE</spring.version> <mybatis.version>3.2.8</mybatis.version> <mybatis-spring.version>1.2.2</mybatis-spring.version> <druid.version>0.2.9</druid.version> <mysql.version>5.1.27</mysql.version> </properties> <dependencies> <!-- spring context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- spring jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <!-- spring transaction --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <!-- aspectj --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.6.11</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>${mybatis-spring.version}</version> </dependency> <!-- mysql 驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> <scope>runtime</scope> </dependency> <!-- 阿里巴巴数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency> </dependencies>
2.配置文件内容如下
在src/main/resources创建spring.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:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "> <!-- 配置数据源 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 基本属性 url、user、password --> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> <!-- 配置初始化大小、最小、最大 --> <property name="initialSize" value="1" /> <property name="minIdle" value="1" /> <property name="maxActive" value="20" /> <!-- 配置获取连接等待超时的时间 --> <property name="maxWait" value="60000" /> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="300000" /> <property name="validationQuery" value="SELECT 'x'" /> <property name="testWhileIdle" value="true" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <!-- 打开PSCache,并且指定每个连接上PSCache的大小 --> <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 --> <property name="filters" value="stat" /> </bean> <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描mapping.xml文件 --> <property name="mapperLocations" value="classpath:com/cygoat/mapper/*.xml"></property> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.cygoat.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean> <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> </beans>
jdbc连接
hibernate.dialect=org.hibernate.dialect.MySQLDialect driverClassName=com.mysql.jdbc.Driver validationQuery=SELECT 1 url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8 username=root password=lxy123 hibernate.hbm2ddl.auto=update hibernate.show_sql=true hibernate.format_sql=true
4.maven集成mybatis代码生成器
1.在pom中增加mybatis插件
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> <!-- <jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver> --> <!-- <jdbcURL>jdbc:mysql://127.0.0.1:3306/test</jdbcURL> --> <!-- <jdbcUserId>test</jdbcUserId> --> <!-- <jdbcPassword>test</jdbcPassword> --> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> </dependencies> </plugin>
2.在src/main/resources下创建generatorConfig.xml,文件内容如下
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 数据库驱动--> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--数据库链接URL,用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test" userId="root" password="lxy123"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成模型的包名和位置--> <javaModelGenerator targetPackage="com.cygoat.model" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成映射文件的包名和位置--> <sqlMapGenerator targetPackage="com.cygoat.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成DAO的包名和位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.cygoat.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名--> <table tableName="sys_user" domainObjectName="SysUser" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
3.执行命令生成代码mybatis-generator:generate
5.junit测试
1.新增com.cygoat.service包
SysUserManager.java
package com.cygoat.service; import com.cygoat.model.SysUser; public interface SysUserManager { public SysUser get(String id); }SysUserManagerImpl.java
package com.cygoat.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.cygoat.dao.SysUserMapper; import com.cygoat.model.SysUser; import com.cygoat.service.SysUserManager; @Service public class SysUserManagerImpl implements SysUserManager { @Autowired private SysUserMapper sysUserMapper; public SysUser get(String id){ return sysUserMapper.selectByPrimaryKey(id); } }
src/test/java下创建SysUserManagerImplTest.java文件,代码如下
package com.cygoat.service; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.cygoat.service.SysUserManager; public class SysUserManagerImplTest { private ApplicationContext ac; @Before public void setUp() throws Exception { ac = new ClassPathXmlApplicationContext("spring.xml"); } @After public void tearDown() throws Exception { } @Test public void testGet() { SysUserManager obj = (SysUserManager)ac.getBean("sysUserManagerImpl"); assertNotNull("not null", obj.get("1")); } }至此,完成了spring和mybatis的整合
6.spring和springMvc整合
6.1.配置spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" 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" 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-3.1.xsd"> <!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 --> <context:component-scan base-package="com.alan.system.controller" /> <!-- 注解请求映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <!-- <ref bean="logNDCInteceptor"/> 日志拦截器,这是你自定义的拦截器 <ref bean="myRequestHelperInteceptor"/> RequestHelper拦截器,这是你自定义的拦截器 <ref bean="myPermissionsInteceptor"/> 权限拦截器,这是你自定义的拦截器 <ref bean="myUserInfoInteceptor"/> 用户信息拦截器,这是你自定义的拦截器 --> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="byteArray_hmc" /> <ref bean="string_hmc" /> <ref bean="resource_hmc" /> <ref bean="source_hmc" /> <ref bean="xmlAwareForm_hmc" /> <ref bean="jaxb2RootElement_hmc" /> <ref bean="jackson_hmc" /> </list> </property> </bean> <bean id="byteArray_hmc" class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /><!-- 处理.. --> <bean id="string_hmc" class="org.springframework.http.converter.StringHttpMessageConverter" /><!-- 处理.. --> <bean id="resource_hmc" class="org.springframework.http.converter.ResourceHttpMessageConverter" /><!-- 处理.. --> <bean id="source_hmc" class="org.springframework.http.converter.xml.SourceHttpMessageConverter" /><!-- 处理.. --> <bean id="xmlAwareForm_hmc" class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" /><!-- 处理.. --> <bean id="jaxb2RootElement_hmc" class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" /><!-- 处理.. --> <bean id="jackson_hmc" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" /><!-- 处理json--> <!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <!-- <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> --> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" />json转换器 </list> </property> </bean> --> <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <!-- json转换器 --> <!-- <bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes" value="application/json" /> </bean> --> </beans>
6.2.修改web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 编码过滤器 --> <filter> <filter-name>encodingFilter</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>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Spring MVC servlet --> <servlet> <description>spring mvc servlet</description> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <description>spring mvc 配置文件</description> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.shtml</url-pattern> </servlet-mapping> <session-config> <session-timeout>10</session-timeout> </session-config> <!-- Spring和mybatis的配置文件 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </context-param> <!-- Spring监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 防止Spring内存溢出监听器 --> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
6.3.测试
新增SysUserController类
package com.cygoat.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.cygoat.service.SysUserManager; @Controller @RequestMapping("sysUser") public class SysUserController { @Autowired private SysUserManager sysUserManager; @RequestMapping("get") @ResponseBody public Object get(String id){ return sysUserManager.get(id); } }启动tomcat,在浏览器输入http://localhost:8080/SSM/sysUser/get.shtml?id=1
至此,已完成了spring、springmvc、mybatis整合
相关推荐
附件内容是一个完整的小项目,使用spring springmvc mybatis maven 实现了 CRUD 操作,ojdbc 要手动安装,mybatis-generator-core 可实现数据库表到实体类的生成,将数据库链接信息改为自己的,就可以运行起来,仅供...
综上所述,"Spring SpringMVC Mybatis Activiti Maven整合demo"是一个典型的Java企业级应用架构,它展示了如何使用这些工具来构建一个完整的、具有流程管理能力的Web应用。开发者可以通过这个示例学习到如何整合这些...
SSM框架整合,即Spring、SpringMVC和Mybatis整合使用,成为了构建企业级Web应用的标准解决方案之一。下面将详细解释Spring、SpringMVC、Mybatis以及SSM整合的相关知识点。 首先,Spring框架是一个开源的Java平台,...
在本示例中,Maven将负责编译、打包和运行这个Spring+SpringMvc+Mybatis的整合应用。 在整合这些框架时,开发者通常会按照以下步骤进行: 1. 配置Maven的pom.xml文件,声明所有必要的依赖,包括Spring、SpringMvc...
在IT行业中,Spring、SpringMVC、MyBatis和Maven是四个非常重要的框架和工具,它们在企业级Java应用开发中占据着核心地位。这个整合实例将带你深入理解这四大技术的协同工作原理,帮助你构建高效、可维护的Web应用...
"SpringMvc+Spring+Mybatis+Maven+注解方式"是一个经典的Java后端技术栈,它整合了四个关键组件,为开发人员提供了强大的工具和框架支持。下面将详细讲解这四个组件及其整合方式。 1. **Spring Framework**: ...
SpringMvc+Spring+MyBatis+Maven整合实例代码,教程见:http://www.cnblogs.com/NaughtyBaby/p/4754881.html 该教程是通过看: ... 《SpringMvc+Spring+Mybatis+Maven整合视频教程1》 编写供学习使用的。
"Maven模块项目"就是这样一个示例,它演示了如何利用Maven的模块化特性,结合Spring、SpringMVC和MyBatis这三大流行Java Web开发框架进行项目整合。下面将详细介绍这些知识点。 首先,Maven是Apache软件基金会开发...
通过SpringMvc+Spring+Mybatis+Maven整合,学习用maven搭建框架
1. **配置环境**:首先确保安装了JDK、Maven(或Gradle)以及Tomcat等必要环境,并在项目中引入Spring、SpringMVC和Mybatis的依赖库。 2. **配置Spring**:创建Spring的配置文件(如`applicationContext.xml`),...
3. **MyBatis-Spring整合**:使MyBatis与Spring无缝集成,通过Spring的DAO支持自动管理SqlSession和Mapper实例。 **Maven** Maven是一个项目管理和综合工具,通过POM(Project Object Model)文件管理项目的依赖...
在"springmvc maven mybatis整合"的项目中,Maven负责管理Spring、SpringMVC、MyBatis以及相关的数据库驱动等库的版本和依赖。 MyBatis是一个轻量级的持久层框架,它将SQL语句与Java代码解耦,通过XML或注解方式...
【标题】"Spring、SpringMVC、MyBatis与Maven整合详解" 【描述】"在现代Java开发中,Spring框架、SpringMVC、MyBatis和Maven是四个非常关键的技术组件。Spring作为全面的企业级应用框架,提供了依赖注入(DI)和...
基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis...
下面我们将详细探讨如何进行SpringMVC、MyBatis与Maven的整合。 首先,Maven是一个项目管理和综合工具,它通过定义项目的POM(Project Object Model)文件来管理依赖关系,构建项目,并执行测试。在`SpringMVC_...
标题中的“Spring+SpringMVC+Mybatis框架整合源码”指的是一个基于Java的Web开发项目,它结合了三个主流的开源框架:Spring、SpringMVC和Mybatis,以实现高效且灵活的企业级应用开发。这三种框架在Java世界中扮演着...
该系统简单实现了Spring SpringMVC Mybatis Maven的整合,其内容简单实现了数据库表的增、删、改、查操作。目的在于Spring SpringMVC Mybatis Maven整合的方法,可以使读者轻松地学会整合的方法。欢迎读者前来下载。
总结来说,"简洁版SpringMVC Mybatis Maven版"是一个简化版的Java Web开发框架组合,利用Maven进行构建管理,Spring MVC处理Web请求,Mybatis负责数据访问,通过合理的配置实现各组件之间的协作,提供了一个高效、可...
基于SpringMVC+Spring+MyBatis+Maven项目案例源码+数据库.zip 基于SpringMVC+Spring+MyBatis+Maven项目案例源码+数据库.zip 基于SpringMVC+Spring+MyBatis+Maven项目案例源码+数据库.zip 基于SpringMVC+Spring+...