配置
<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简化了的调用开发。
但是这个简化必须有规范的。
- xml的命名空间必须是对应的接口路径
- sql语句的id必须和接口中的方法一一对应。
- sql语句的parameterType和接口中的方法的参数是对应的
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>