`
A牛哥哥
  • 浏览: 149384 次
社区版块
存档分类
最新评论

整合spring与mybatis及相关配置

阅读更多
精简版的, 直说重要的部分

目录结构如下:

1.web.xml配置
  <context-param>
  	<param-name>contextConfigLocation</param-name>
        <!--spring配置文件路径及文件名,根据自己实际情况改-->
  	<param-value>classpath:beans.xml</param-value>
  </context-param>
  
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <filter>
  	<filter-name>struts</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>


2.spring配置文件,放到类路径下
<?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: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/aop
							http://www.springframework.org/schema/aop/spring-aop-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/context
							http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	<!-- 包扫描, 我用的注解方式, 根据自己实际目录改 -->
	<context:component-scan base-package="action,service,dao"></context:component-scan>
	
	<!-- 连接池 -->
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql://localhost/mybatis"/>
		<property name="username" value="root"/>
		<property name="password" value="root"/>
	</bean>
	
	<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"/>
                <!--加载mybatis配置文件,根据自己目录改-->
		<property name="configLocation" value="classpath:sqlMapConfig.xml"/>

	</bean>
	
	<!--以下是事务配置 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<tx:advice id="tx" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="*" isolation="DEFAULT" propagation="REQUIRED" read-only="false"/>
		</tx:attributes>
	</tx:advice>
	
	<aop:config>
		<aop:pointcut expression="execution(* service.*.*(..))" id="p"/>
		<aop:advisor advice-ref="tx" pointcut-ref="p"/>
	</aop:config>
</beans>


3.实体类与映射文件(同一包下)
假设实体类叫User.java, 放在domain包下,并在domain包下为User.java编写映射文件User.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="A">
        <!--resultType="User" 用的是mybati配置文件中配置的别名(看第4步中), 也可以用别的类型,表示你希望mybatis将查出来的结果封装成什么类型返回给你,看你的实际需要-->
	<select id="selectUserById" parameterType="int" resultType="User">
		select * from users where id=#{id}
	</select>
</mapper>
namespace叫什么都行, 但是一定要唯一,不能跟别的实体类一样
很多网上都是错误的,说namespace映射的是Dao,其实不是,namespace叫什么都行

4.mybati配置文件,类路径下
<?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>
	<typeAliases>
                <!--alias="User"是给type里的类起一个别名,User.xml的resultType就是使用的这个别名,可以任意,但也要唯一-->
		<typeAlias type="domain.User" alias="User"/>
	</typeAliases>
	<mappers>
		<mapper resource="domain/User.xml"/>
	</mappers>
</configuration>

5.mybatis没有hibernate的showsql功能, 要显示sql语句,可以添加log4j.properties文件,配置如下:
log4j.rootLogger=info, Console
 
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
 
log4j.logger.java.sql.ResultSet=info
log4j.logger.org.apache=info
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
直接放到类路径下就可以直接使用, 不用在任何地方配置加载此文件!

6.简单查询
@Repository("demoDao")
public class DemoDaoImpl extends SqlSessionDaoSupport implements DemoDao{
	
	public User getUserById(int id) {
		return 	(User) this.getSqlSession().selectOne("A.selectUserById",1);
	}
}
A就是User.xml中的namespace, selectUserById就是<select.../>中的id
A.selectUserById就唯一确定了这条sql语句select * from users where id=#{id}
1就是传入的参数,执行之后log4j会在控制台输出如下:
2013-08-28 17:19:16,896 [http-8888-2] DEBUG [java.sql.PreparedStatement] - ==>  Executing: select * from users where id=? 
2013-08-28 17:19:16,897 [http-8888-2] DEBUG [java.sql.PreparedStatement] - ==> Parameters: 1(Integer)
其中的Parameters:1(Integer)是显示传入的参数


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

相关推荐

    spring整合mybatis时需要用到的配置文件

    在Spring和MyBatis的整合过程中,配置文件起着至关重要的作用。它们定义了Spring如何管理MyBatis的SqlSessionFactory,以及数据源、事务管理器等核心组件。下面将详细阐述这些配置文件的关键内容。 首先,`User....

    spring_mybatis 整合jar包

    标题"spring_mybatis 整合jar包"指出我们要关注的是一个包含了整合Spring和MyBatis所需库的压缩文件。这通常包括Spring的核心库、Spring的数据库支持库、MyBatis的主库以及可能的其他依赖,如日志、数据库驱动等。这...

    Spring整合Mybatis与SpringBoot整合Mybatis原理分析

    将Spring与Mybatis整合,可以充分利用两者的优点,构建出高效、灵活的Web应用。 1. **Spring整合Mybatis的基本步骤** - **引入依赖**: 在项目的pom.xml中添加Spring和Mybatis的相关依赖。 - **配置数据源**: ...

    spring和mybatis整合配置

    整合Spring和MyBatis的关键步骤如下: 1. **添加依赖**:在Maven项目中,我们需要在pom.xml文件中添加Spring和MyBatis的相关依赖库,包括Spring的core、context、beans、jdbc以及MyBatis的核心库和...

    spring整合Mybatis

    最后,`springMybatis`可能是指项目的根目录或者模块名称,通常包含`src/main/resources`下的Mybatis配置文件、Mapper接口和XML文件,以及`src/main/java`下的业务逻辑和服务层代码。 综上所述,"Spring整合Mybatis...

    OSGI整合Spring、Mybatis、Spring MVC实现一个登录应用案例

    Spring与Mybatis的整合可以让我们方便地进行数据库操作,并通过Spring的事务管理确保数据一致性。 Spring MVC是Spring框架的一部分,用于构建Web应用程序。它处理HTTP请求,将请求映射到控制器,然后通过模型和视图...

    ssm框架spring+mybatis+mvc

    在SSM框架中,MyBatis与Spring整合后,可以方便地管理SqlSession,实现事务控制。 3. Spring MVC框架: Spring MVC是Spring框架的一部分,专门用于构建Web应用的MVC架构。它负责接收HTTP请求,调度控制器,处理...

    Spring-Mybatis整合

    现在我们来详细讨论一下Spring-Mybatis整合的相关知识点。 1. **Spring 概述**: Spring 是一个全面的企业级应用框架,它提供了一个容器来管理对象的生命周期和依赖关系。Spring 的核心特性包括依赖注入(DI)和...

    spring整合mybatis的jar_spring+mybatis_

    首先,整合Spring与MyBatis的核心在于Spring的DataSource、TransactionManager和SqlSessionFactoryBean。DataSource是数据源,负责连接数据库;TransactionManager处理事务管理;SqlSessionFactoryBean则用于创建...

    spring与Mybatis整合所有jar包

    以上就是Spring与MyBatis整合所需的关键知识点。在实际项目中,还需要根据具体需求进行适当的配置调整和优化,确保框架的高效协同工作。正确配置和理解这些概念对于Java开发者来说至关重要,因为它们构成了许多企业...

    Spring与MyBatis整合源码

    4. **Spring2MyBatis源码分析**:这个源码应该包含了整合Spring和MyBatis的完整示例,包括配置文件(如`applicationContext.xml`)、Mapper接口及对应的XML映射文件、Service层的实现以及可能的Controller层代码。...

    spring与mybatis整合实现事务配置

    通过整合Spring和MyBatis,可以在Service层调用Mapper接口完成用户信息的查询,同时利用Spring的事务管理确保数据操作的完整性和一致性。 **关于事务管理的一些知识点:** 1. **事务的ACID特性**:原子性...

    mybatis与spring整合的全部jar包

    6. **配置与整合**: 在整合SSM时,我们需要配置Spring的`beans.xml`和`mybatis-spring.xml`文件,定义数据源、SqlSessionFactory、MapperScannerConfigurer等组件。同时,MyBatis的Mapper接口和XML映射文件也需要...

    spring4.3 mybatis3.4 整合

    在IT行业中,Spring框架与MyBatis的整合是常见的企业级应用开发模式,尤其是在Java领域。本项目基于Spring 4.3和MyBatis 3.4进行整合,旨在构建一个SSM(Spring、SpringMVC、MyBatis)集成的多模块Web项目。这个项目...

    springmvc + spring + mybatis + maven整合配置文件

    3. **MyBatis-Spring整合**:使MyBatis与Spring无缝集成,通过Spring的DAO支持自动管理SqlSession和Mapper实例。 **Maven** Maven是一个项目管理和综合工具,通过POM(Project Object Model)文件管理项目的依赖...

    Spring3 整合MyBatis3 配置多数据源动态选择SqlSessionFactory详细教程

    Spring3 整合 MyBatis3 配置多数据源动态选择 SqlSessionFactory 详细教程 本教程主要介绍了 Spring3 整合 MyBatis3 配置多数据源动态选择 SqlSessionFactory 的详细教程。下面将详细介绍如何实现 Spring 整合 ...

    spring和mybatis整合小案例

    - **配置MyBatis-Spring**:整合的关键在于配置Spring的SqlSessionFactoryBean,它会根据配置文件生成SqlSessionFactory,该工厂用于创建SqlSession对象,进而执行数据库操作。 - **数据源配置**:首先,我们需要...

    Struts2, Spring与myBatis整合示例项目

    Struts2和MyBatis的配置信息通常会整合到Spring的配置文件中,以实现整体的统一管理和控制。 项目结构通常如下: - src/main/java:存放业务逻辑类、DAO接口及实现、Struts2 Action类。 - src/main/resources:存放...

    jersey+spring+mybatis整合

    在项目结构中,`spring-jersey`可能包含相关的配置文件、jersey的资源类、MyBatis的Mapper接口及其XML配置文件等。 总的来说,"jersey+spring+mybatis"的整合提供了高效、灵活且易于维护的Web服务开发环境。通过...

    spring与mybatis整合所用的jar包

    总的来说,Spring与MyBatis的整合利用了Spring的IoC和AOP能力,结合MyBatis的灵活SQL映射,构建出一个既易于维护又高效的Java Web应用。通过理解这些知识点,开发者可以更好地理解和实践这两种框架的整合。

Global site tag (gtag.js) - Google Analytics