spring springmvc mybatis maven整合
来源:互联网 发布:mac mini配4k显示器 编辑:程序博客网 时间:2024/05/16 12:44
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.xsdhttp://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>
hibernate.dialect=org.hibernate.dialect.MySQLDialectdriverClassName=com.mysql.jdbc.DrivervalidationQuery=SELECT 1url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8username=rootpassword=lxy123hibernate.hbm2ddl.auto=updatehibernate.show_sql=truehibernate.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;@Servicepublic class SysUserManagerImpl implements SysUserManager {@Autowiredprivate 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;@Beforepublic void setUp() throws Exception {ac = new ClassPathXmlApplicationContext("spring.xml");}@Afterpublic void tearDown() throws Exception {}@Testpublic 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> --><!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 --><beanclass="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 {@Autowiredprivate SysUserManager sysUserManager;@RequestMapping("get")@ResponseBodypublic Object get(String id){return sysUserManager.get(id);}}启动tomcat,在浏览器输入http://localhost:8080/SSM/sysUser/get.shtml?id=1
至此,已完成了spring、springmvc、mybatis整合
0 0
- SpringMvc+Spring+Mybatis+Maven整合
- spring springmvc mybatis maven整合
- Springmvc+spring+maven+Mybatis整合
- SpringMvc+Spring+Mybatis+Maven整合
- SpringMVC+Spring+Mybatis+Maven整合
- MAVEN整合Spring+SpringMVC+Mybatis
- SpringMvc+Spring+MyBatis+Maven整合
- spring+springmvc+mybatis+maven 整合
- Spring+SpringMVC+MyBatis+Maven整合
- maven SpringMVC,Spring,Mybatis整合
- maven+springmvc+spring+mybatis整合
- maven+spring+springmvc+mybatis整合
- maven+Spring+SpringMVC+Mybatis 整合
- maven+mybatis+spring+springmvc整合
- Spring+SpringMVC+Mybatis+maven整合
- spring+mybatis+springMvc+maven简单整合
- SpringMvc+Spring+Mybatis+Maven整合学习
- springmvc+spring+mybatis整合demo(maven)
- Oracle DDL基本操作
- 常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全
- 大连创业圈:孤独与寂寞并存
- 黑马day11 脏读数据&解决方案
- Eclipse创建Java Web项目
- spring springmvc mybatis maven整合
- 民丹岛中文离线地图App上线
- synchronized用于静态方法和普通方法区别
- [QML] Connections元素介绍
- AXD Error:Processor ARM79_0 raised an exception. Cause: The processor was reset
- windows系统下Python环境的搭建
- tableView - 点击加载更多(通知)
- Android按钮单击事件的四种常用写法总结
- Oracle数据库备份与恢复