`
PlayGod1984
  • 浏览: 160346 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Maven + SpringMVC + Mybatis【绝非原创,单纯整理】【四】

阅读更多
对于我这样的菜鸟来说,这一部分是我最痛苦的部分了,各种错误啊。而且这里涉及具体的配置,网上牛人各种方式都有,我也在配置的过程中去翻翻mybatis的源代码,尽管没看懂,但是还是比较装2的跟人家炫耀:俺也看过框架源代码,就是没看懂(当然,后面这句没说出口,他们替我说了)。
第四篇:web.xml,ApplicationContext.xml,xxx-servlet.xml(spring mvc的配置文件),mybatis-config.xml以及sql映射语句xxxxMapper.xml的配置。=================================================================
呼,好长的题目,差点一口气没上来,憋死。
先给看一下目录结构:
[img]
http://dl.iteye.com/upload/attachment/453071/2ed93902-e777-309e-bbe5-58225bcac04b.png
[/img]
同事帮着分的,个人感觉还不错,不一定科学,全凭个人喜好。
一web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
		   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
		   
	<display-name>qdcl-mart</display-name>
	
	<!-- 载入spring上下文  -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:/spring/applicationContext.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<!-- Spring 刷新Introspector防止内存泄露 -->
    <listener>
        <listener-class>
            org.springframework.web.util.IntrospectorCleanupListener
        </listener-class>
    </listener>
	
	<!-- 字符编码过滤器 -->
	<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上下文  -->
	<servlet>
		<servlet-name>mart</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath*:/spring-mvc/mart-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>mart</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	<!-- 欢迎页面 -->
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

关于classpath*:/其实无所谓,至少在我的目录结构里无所谓,用classpath:/或者不写都可以找到的。既然我用这个跑起来了,其他的我就不写了。
2:applicationContext.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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" 
	xmlns:jdbc="http://www.springframework.org/schema/jdbc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="          
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd          
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd          
      http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-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="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:spring/jdbc.properties</value>
            </list>
        </property>
    </bean>
      
	<!-- 数据库连接池 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${jdbc.driver}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>
	
	<!-- Mybatis's sqlSessionFactory config -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="configLocation" value="classpath:mybatis-config.xml"/>		
	</bean>
	
	<bean name="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 启用事务 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="save*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
		</tx:attributes>
	</tx:advice>

	<aop:config>
		<aop:pointcut id="serviceOperation"	expression="execution(* com.qdcl.mart.business.service.*.*(..))" />
		<aop:advisor advice-ref="txAdvice"	pointcut-ref="serviceOperation" />
	</aop:config>
	
	<!-- scan  mappers and let them be autowired -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">       
		<property name="basePackage" value="com.qdcl.mart.business.persistence" />
	</bean>
    <!-- 激活annotation功能 -->
	<context:annotation-config />
	<!-- 激活annotation功能 -->
	<context:spring-configured/>
	<!-- 扫描指定package下所有带有如@controller,@services,@resource,并把所注释的注册为Spring Beans -->
	<context:component-scan base-package="com.qdcl.mart.business.service" />
</beans> 

jdbc.properties
jdbc.url=jdbc:mysql://localhost:3306/qdclmart?useUnicode=true&amp;characterEncoding=UTF-8
jdbc.driver=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=root

里面的dataSource就不说了,简单说一下
①、sqlSessionFactory:用来进行数据库操作的类,而且好玩的是虽然你配了org.mybatis.spring.SqlSessionFactoryBean,但是测试的时候你用getBean("sqlSessionFactory")得到的确是mybatis的这个类: org.apache.ibatis.session.SqlSessionFactory,原因是org.mybatis.spring.SqlSessionFactoryBean.getObject返回的类型给改变了。具体为何我也不知道。大家可以测试一下,强转就抛错误了。
②、
<!-- scan  mappers and let them be autowired -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">       
		<property name="basePackage" value="com.qdcl.mart.business.persistence" />
	</bean>

这段配置是我比较喜欢滴,因为他自动扫描了所有的XxxxMapper.java,这样就不用一个一个手动配置Mpper的映射了,只要Mapper接口类和Mapper映射文件对应起来就可以了。详细的大家可以到google mybatis项目网址看一下那个文档,中文滴。
③、
<!-- 激活annotation功能 -->
	<context:annotation-config />
	<!-- 激活annotation功能 -->
	<context:spring-configured/>
	<!-- 扫描指定package下所有带有如@controller,@services,@resource,并把所注释的注册为Spring Beans -->
	<context:component-scan base-package="com.qdcl.mart.business.service" />

以上3句不解释了啊,就是注解式管理bean,有的大神不推荐,我个人还是喜欢,因为对大量的配置文件有些抵触,错了找起来比较麻烦。懒嘛。 context:component-scan尽管他是递归方式扫描,我还是建议大家base-package具体一些,你懂得。
3:mart-servlet.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	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.0.xsd
						http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
      					http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
      					>
	<!-- 只能用于springMVC,用于配置springMVC的注解驱动 -->
	<mvc:annotation-driven />
	<!-- Spring mvc视图解析器  -->						
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/view/" />
		<property name="suffix" value=".jsp" />
	</bean>	
	<context:component-scan base-package="com.qdcl.mart.business.web" />

</beans>

只说一句,一开始没加<context:component-scan base-package="com.qdcl.mart.business.web" />这一句,结局就是我在Controller里面写RequestMapping(xxxx)的时候是找不到的,我弄了一上午,并且发誓再找不到原因就跳楼的,还好吃饭前找出原因。要不要么是死人,要么是女人了。呵呵。
4、mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 基础设置 -->
	<settings>
		<!-- changes from the defaults -->
		<setting name="lazyLoadingEnabled" value="false" />
	</settings>
	<!-- 别名定义 -->
	<typeAliases>
		<typeAlias alias="production" type="com.qdcl.mart.business.domain.Production" />
	</typeAliases>
	<!-- SQL映射文件 -->
	<mappers>
		<mapper resource="mapper/ProductionMapper.xml" />
	</mappers>
</configuration>



也是一句,就是最后这个mappers的resource配置,当时手贱,写成/mapper/ProductionMapper.xml,那叫一个悲剧,一直没找到,这就是不仔细看文档的下场。
5、XxxMapper.xml(ProductionMapper.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.qdcl.mart.business.persistence.ProductionMapper">

	<!-- 检索 -->
	<select id="selectProductionByName" parameterType="java.lang.String" resultType="production">
		<!-- 检索sql文 -->
		SELECT productionid,productionname,price,detail FROM production
		where productionname = #{productionname}
	</select>
	
	<!-- 插入 -->
	<insert id="insertProduction" parameterType="production">
		insert into production  values (#{productionid},#{productionname},#{price},#{detail});
	</insert>
	<!-- 更新 -->
	<update id="updateProduction" parameterType="production">	
		update production set productionname = #{productionname},
							  price = #{price},
							  detail = #{detail}	
	</update>
	<!-- 删除 -->
	<delete id="deleteProduction" parameterType="java.lang.String">
		delete from production where productionid = #{value}
	</delete>
</mapper>

还是一句,这里的sql id一定要和XxxMapper.xml里面的一致起来,废话。

  • 大小: 22.6 KB
分享到:
评论

相关推荐

    maven+springmvc+redis+mybatis整合

    本项目以“maven+springmvc+redis+mybatis整合”为主题,旨在提供一个基于这些技术的集成框架,特别强调了利用Redis作为缓存来提升应用性能。下面将详细阐述这个框架中的各个组成部分以及它们之间的协作。 首先,...

    maven+springMVC+mybatis+velocity+mysql+junit项目框架搭建

    本项目框架“maven+springMVC+mybatis+velocity+mysql+junit”提供了一种高效、灵活且可维护的解决方案。以下将详细讲解这些组件及其作用。 1. Maven: Maven是一个项目管理工具,用于构建、依赖管理和项目信息...

    maven+spring+springMVC+mybatis

    maven+spring+springMVC+mybatis 框架搭建 Maven 是一个优秀的项目管理和构建工具,Spring 是一个广泛使用的 Java 框架,SpringMVC 是基于 Spring 的一个 Web 框架,MyBatis 是一个持久层框架。在这个项目中,我们...

    Maven+springmvc+mybatis+easyui+mysql DEMO

    【Maven+SpringMVC+MyBatis+EasyUI+MySQL DEMO】是一个典型的Java Web项目集成示例,它展示了如何将这些流行的技术框架整合在一起,以构建一个功能丰富的Web应用。下面将详细介绍这些技术及其在项目中的作用。 1. ...

    Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境

    Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境

    Maven+SpringMVC+Mybatis Demo

    【Maven+SpringMVC+Mybatis Demo】是一个典型的Java Web开发示例,它结合了三个流行的开源框架:Maven、SpringMVC和Mybatis,用于构建高效、模块化的Web应用程序。下面将详细介绍这三个框架以及它们如何协同工作。 ...

    maven+springMvc+MyBatis Demo

    【标题】"maven+springMvc+MyBatis Demo"是一个综合性的开发示例,它展示了如何将三个关键的Java Web开发框架——Maven、Spring MVC和MyBatis——集成到一个项目中。这个示例旨在帮助开发者理解如何在实际项目中有效...

    Spring+SpringMVC+Mybatis+Velocity+Maven demo

    Spring、SpringMVC、Mybatis、Velocity和Maven是Java Web开发中常用的一组技术栈,它们各自在软件开发的不同层面发挥着重要作用。这个压缩包文件的标题和描述表明,它提供了一个集成这些技术的演示项目,下面我们将...

    maven+springmvc+spring+mybatis

    【标题】"maven+springmvc+spring+mybatis"是一个经典的Java Web开发技术栈,它结合了四个关键组件:Maven(项目管理工具),Spring MVC(MVC框架),Spring(核心框架)以及MyBatis(持久层框架)。这个组合在企业...

    Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven实现的通用权限管理系统

    Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven+EasyUI+Bootstrap实现的通用权限管理系统。 Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven+EasyUI+Bootstrap实现的通用权限管理系统 Spring+SpringMVC+...

    maven+springmvc4+mybatis源代码

    【标题】"maven+springmvc4+mybatis源代码" 涵盖了现代Java Web开发中的三个关键组件:Maven、Spring MVC 4和MyBatis。这是一个典型的三层架构,包括构建管理、表现层和持久层。下面将详细阐述这三个技术及其在项目...

    SpringMvc+Spring+Mybatis+Maven+注解方式=整合

    "SpringMvc+Spring+Mybatis+Maven+注解方式"是一个经典的Java后端技术栈,它整合了四个关键组件,为开发人员提供了强大的工具和框架支持。下面将详细讲解这四个组件及其整合方式。 1. **Spring Framework**: ...

    eclipse+maven+springmvc+spring+mybatis案例附带mysql数据库

    【标题】"eclipse+maven+springmvc+spring+mybatis案例附带mysql数据库"是一个典型的Java Web开发项目,它涵盖了多个关键的技术栈,包括Eclipse IDE、Maven构建工具、Spring MVC作为MVC框架、Spring核心框架以及...

    Maven + SpringMVC + Mybatis【绝非原创,单纯整理】【五】

    本篇主题聚焦于"Maven + SpringMVC + Mybatis"的集成应用,这是一种在Java Web开发中常见的技术栈组合,适用于构建高效、可维护的后端服务。Maven作为项目管理工具,SpringMVC是Spring框架的一部分,用于处理HTTP...

    Maven+SpringMVC+Spring+Mybatis+Mysql(Oracle)

    Maven+SpringMVC+Spring+Mybatis+Mysql(Oracle)框架整合代码,需要注意的是Maven仓库不提供ojdbc.jar,需要手动添加,mvn install:install-file -DgroupId=...

    maven+spring MVC+Mybatis+jetty+mysql

    "maven+spring MVC+Mybatis+jetty+mysql" 的组合是常见的开发栈,它涵盖了项目管理、前端控制器、持久层操作、应用服务器以及数据库管理等多个层面。下面将详细介绍这些关键技术及其在实际应用中的作用。 1. Maven...

    Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统

    在本项目中,"Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统",我们看到一个基于Java技术栈的Web应用开发实例。这个系统利用了多个核心技术来构建一个功能完备的员工管理...

    整合Spring+SpringMVC+Mybatis+Maven+Mysql项目实例

    整合搭建Spring+SpringMVC+Mybatis+Maven+Mysql开发实例

    Maven+SpringMVC的入门级HelloWorld实例

    总结,Maven+SpringMVC的组合为Java Web开发提供了强大的支持,从项目管理到应用构建,再到复杂的业务逻辑处理,它们都扮演着不可或缺的角色。通过这个入门级的HelloWorld实例,我们可以快速理解这两个工具的基本...

    maven + springmvc + mybatis

    【标题】"maven + springmvc + mybatis" 指的是一个常见的Java Web开发框架组合,用于构建高效、模块化的应用程序。Maven是项目管理和综合工具,Spring MVC是Spring框架的一部分,用作Web应用的模型-视图-控制器...

Global site tag (gtag.js) - Google Analytics