33Mybatis------Mapper的编写

Mapper编写的三种方法
 
传统的做法:
接口实现类继承SqlSessionDaoSupport

使用此种方法需要编写mapper接口,mapper接口实现类、mapper.xml文件

1、  在sqlMapConfig.xml中配置mapper.xml的位置

<mappers>

  <mapper resource="mapper.xml文件的地址" />

<mapper resource="mapper.xml文件的地址" />

</mappers>

 

2、  定义mapper接口

 

3、  mapper的实现类集成SqlSessionDaoSupport

 

mapper方法中可以this.getSqlSession()进行数据增删改查。

4、  spring 配置

 

<bean id=" " class="mapper接口的实现">

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

    </bean>

 sqlSession的配置需要两个:一个是dataSource。一个是SqlMapper.xml:

思路:我们配置Mapper时是需要SqlSeeion的,那么SqlSession怎么来,用SqlSessionFactroy来得到。所以mapper的实现类要继承SqlSessionDaoSupport

然后就可以用this.getSqlSession()来得到SqlSession来增删改查。。

 

 

 

 

 

 

 

 

 

 

 

 

 

使用org.mybatis.spring.mapper.MapperFactoryBean

 

1、  在sqlMapConfig.xml中配置mapper.xml的位置

<mappers>

  <mapper resource="mapper.xml文件的地址" />

<mapper resource="mapper.xml文件的地址" />

</mappers>

 

2、  定义mapper接口

 

注意

1、mapper.xml中的namespace为mapper接口的地址

2、mapper接口中的方法名和mapper.xml中的定义的statementid保持一致

 

3、  Spring中定义

<bean id="" class="org.mybatis.spring.mapper.MapperFactoryBean">

     <property name="mapperInterface"   value="mapper接口地址" /> 

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

    </bean>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

使用mapper扫描器

 

1、  mapper.xml文件编写,

注意:

mapper.xml中的namespace为mapper接口的地址

mapper接口中的方法名和mapper.xml中的定义的statementid保持一致

 

 

2、  定义mapper接口

 

注意mapper.xml的文件名和mapper的接口名称保持一致,且放在同一个目录

 

3、  配置mapper扫描器

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

       <property name="basePackage" value="mapper接口包地址"></property>

       <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>

    </bean>

 

4、 使用扫描器后从spring容器中获取mapper的实现对象

 

扫描器将接口通过代理方法生成实现对象,要spring容器中自动注册,名称为mapper 接口的名称。

 

如果将mapper.xml和mapper接口的名称保持一致则不用在sqlMapConfig.xml中进行配置

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

<!-- 数据库连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
       <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <!-- 开发阶段建议最大连接数据尽量少,够用即可 -->
        <property name="maxActive" value="${jdbc.maxActive}"/>
        <property name="maxIdle" value="${jdbc.maxIdle}"/>
</bean>


<!-- 配置SqlSessionFactory
从spring和mybatis的整合包中获取
 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!-- 加载数据源 -->
    <property name="dataSource" ref="dataSource"/>
    <!-- 配置SqlMapConfig.xml -->
    <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/>
</bean>

<!-- 使用MapperFactoryBean 生成mapper的代理对象
在mybatis和spring的整合包中
-->


<!--配置 mapper自动扫描器
 bean名称就是mapper类型(首字母小写)
 -->

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
   <!-- 配置扫描包路径 ,如果扫描多个包路径,中间使用半角逗号分隔-->
   <property name="basePackage" value="yycg.base.dao.mapper"/>
    <!-- 配置SqlSessionFactory -->
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>


</beans>

 

classpath:mybatis/SqlMapConfig.xml"用包扫描的话,因为xml文件和接口在同一个文件夹下面,所以SqlMapConfig.xml里面可以不写子xml的地址。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值