mybatis + spring

1Mybatis整合spring,首先要导入相应的包

 

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:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans

 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

 http://www.springframework.org/schema/context 

    http://www.springframework.org/schema/context/spring-context-2.5.xsd">

<!-- 加载jdbc配置文件 -->

<context:property-placeholder location="classpath:properties/jdbc.properties"/>

<!-- 数据源 -->

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 

destroy-method="close">

 <!-- 设置JDBC驱动名称 -->  

        <property name="driverClass" value="${driverClassName}" />  

        <!-- 设置JDBC连接URL -->  

        <property name="jdbcUrl" value="${url}" />  

        <!-- 设置数据库用户名 -->  

        <property name="user" value="${username}" />  

        <!-- 设置数据库密码 -->  

        <property name="password" value="${password}" />  

        <!-- 设置连接池初始值 -->  

        <property name="initialPoolSize" value="${initialPoolSize}" />  

        <!-- 设置连接池最大值 -->  

        <property name="maxPoolSize" value="${maxPoolSize}" />  

        <!-- 设置连接池最小空闲值 -->  

        <property name="minPoolSize" value="${minPoolSize}" />  

        <!-- 每次增长的连接数 -->  

        <property name="acquireIncrement" value="${acquireIncrement}" />  

        <!-- 等待获取新连接的时间 -->  

        <property name="checkoutTimeout" value="${checkoutTimeout}" />  

        <!-- 每60秒检查每个连接的状态 -->  

        <property name="idleConnectionTestPeriod" value="${idleConnectionTestPeriod}" />  

        <!-- 超时等待时间以毫秒为单位 -->  

        <property name="maxIdleTime" value="${maxIdleTime}" />  

</bean>

<!-- sqlSessionFactory -->

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<!-- 注入数据源 -->

<property name="dataSource" ref="dataSource"/>

<!-- 指定配置文件 -->

<property name="configLocation" value="classpath:properties/configuration.xml"></property>

</bean>

<!--  配置sqlSessionTemplate -->

<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">

<constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>

</bean>

<!-- 扫描包 -->

<context:component-scan base-package="hwt"></context:component-scan>

<!-- 事务 -->

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource" />

</bean>

<tx:advice id="tx" transaction-manager="transactionManager">

<tx:attributes>

<tx:method name="add*" propagation="REQUIRED" />

<tx:method name="save*" propagation="REQUIRED" />

<tx:method name="delete*" propagation="REQUIRED" />

<tx:method name="update*" propagation="REQUIRED" />

<tx:method name="get*" propagation="NOT_SUPPORTED"/>

<tx:method name="load*" propagation="NOT_SUPPORTED"/>

<tx:method name="find*" propagation="NOT_SUPPORTED" />

<tx:method name="*" propagation="NOT_SUPPORTED"/>

</tx:attributes>

</tx:advice>

<aop:config>

<aop:pointcut id="pt" expression="execution(* hwt.service..*.*(..))"/>

<aop:advisor advice-ref="tx" pointcut-ref="pt"/>

</aop:config>

</beans>

 

Configuration.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>

<!-- 默认是在src目录下 -->

    <!-- <settings>

 <setting name="cacheEnabled" value="true"/>

  lazyLoadingEnabled:true使用延迟加载,false禁用延迟加载。默认为true;

                aggressiveLazyLoading:true启用时,当延迟加载开启时访问对象中一个懒对象属性时,

                                                                                                       将完全加载这个对象的所有懒对象属性。

                                     false,当延迟加载时,按需加载对象属性(即访问对象中一个懒对象属性,不会加载对象中其他的懒对象属性)。

                                                                                                       默认为true  

  <setting name="lazyLoadingEnabled" value="true"/>

  <setting name="aggressiveLazyLoading" value="false"/>

</settings>-->

<typeAliases>

  <!-- 别名 -->

  <typeAlias alias="Emp" type="hwt.pojo.Emp"/>

  <typeAlias alias="Dep" type="hwt.pojo.Dep"/>

   </typeAliases>

   

   <!-- 配置环境,可以配置多个环境,默认default指定默认环境 -->

   <!-- 如果在spring中配置了数据源,那么下面配置将失效 -->

   <!-- <environments default="development">

<environment id="development">-->

<!-- 事务管理有JDBC和MANAGED两种

JDBC:有jdbc来进行事务的提交和回滚

MANAGED:不做处理,交给如spring来管理

 -->

   <!--<transactionManager type="JDBC" />-->

<!-- 数据源UNPOOLED,POOLED,JNDI -->

<!-- <dataSource type="POOLED">

<property name="driver" value="${driverClassName}" />

<property name="url" value="${url}" />

<property name="username" value="${username}" />

<property name="password" value="${password}" />

</dataSource>

</environment>

</environments>-->

<!-- 对于mapper.xml映射文件的配置 -->

<mappers>

<mapper resource="hwt/Mapper/EmpMapper.xml"/>

<mapper resource="hwt/Mapper/DepMapper.xml"/>

<mapper resource="hwt/Mapper/CommonMapper.xml"/>

</mappers>

</configuration>

 

 

Mapper

public interface CommonMapper {

/**

 * 公共分页方法

 * @param page

 * @return

 */

public List paging(PageEntity page);

}

 

DAO实现:

@Repository

public class CommonDAO extends SqlSessionDaoSupport implements CommonMapper{

@Resource(name = "sqlSessionTemplate"注意这里是给父类注入sqlSessionTemplate

private void setSqlSession(SqlSessionTemplate sqlSessionTemplate){

super.setSqlSessionTemplate(sqlSessionTemplate);

}

@Override

public List paging(PageEntity pageEntity) {

int page = pageEntity.getPage() == null || "".equals(pageEntity.getPage()) ? 1 : pageEntity.getPage(); //默认为第一页

int size = pageEntity.getSize() == null || "".equals(pageEntity.getSize()) ? 15 : pageEntity.getSize();; //默认每页15个

RowBounds rowBounds = new RowBounds((page-1)*size, size);

return getSqlSession().selectList(pageEntity.getSqlId(), pageEntity.getParams(), rowBounds);

}

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值