二、mybatis和spring结合

配置

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">

    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 数据源 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置Mybatis的全局配置文件 -->
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
        <!-- 别名包 -->
        <property name="typeAliasesPackage" value="com.taotao.cart.pojo"/>
    </bean>

    <!-- mapper接口的扫描器 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.taotao.cart.mapper"/>
    </bean>

</beans>

1.1数据源
这个就是普通的数据源,可以采用C3p0或者dbcp等等。
1.2全局配置文件

<?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>
        <!-- 驼峰的自动映射 -->
        <setting name="mapUnderscoreToCamelCase" value="true" />
        <!-- 输出sql日志 -->
        <setting name="logImpl" value="STDOUT_LOGGING" />
    </settings>

    <plugins>
        <!-- 分页插件 -->
        <plugin interceptor="com.github.pagehelper.PageHelper">
            <property name="dialect" value="mysql" />
            <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
            <property name="rowBoundsWithCount" value="true" />
        </plugin>

        <!-- 基于注解的用于操作单个对象的  默认Mapper实现 -->
        <plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor">
            <!--主键自增回写方法,默认值MYSQL,详细说明请看文档 -->
            <property name="IDENTITY" value="MYSQL" />
            <!--通用Mapper接口,多个通用接口用逗号隔开 -->
            <property name="mappers" value="com.github.abel533.mapper.Mapper" />
        </plugin>
    </plugins>


</configuration>

1.3别名包
比如在mapper文件中,resultType=”com.taotao.cart.pojo.User” 如果配置了

 <property name="typeAliasesPackage" value="com.taotao.cart.pojo"/>

就只需要这样写

resultType="User"

1.4Mapper接口和xml的扫描器

 <!-- mapper接口的扫描器 -->
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property name="basePackage" value="com.taotao.cart.mapper"/>
 </bean>

属于模糊扫描不想之前手动写那么麻烦。

这里需要特别将一下mapper接口,像上篇文章,调用的时候特别麻烦,所以mybatis简化了的调用开发。
但是这个简化必须有规范的。

  1. xml的命名空间必须是对应的接口路径
  2. sql语句的id必须和接口中的方法一一对应。
  3. sql语句的parameterType和接口中的方法的参数是对应的
  4. sql语句的resultType和接口中的返回值方法是对应的

    比如下面的例子

CartMapper2.java

package com.taotao.cart.mapper;

import org.springframework.stereotype.Component;

import com.taotao.cart.pojo.Cart;

@Component
public interface CartMapper2{
    public Cart getById( int id);
}

CartMapper2.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.taotao.cart.mapper.CartMapper2">

    <select id="getById" parameterType="int" resultType="Cart" >
        select
        *
        from tb_cart where id=#{id}
    </select>

</mapper>
阅读更多
个人分类: mybatis
上一篇一、mybatis入门
下一篇三、mybatis全局配置
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭