Spring配置
1、配置DataSource数据源代理对象
<bean id="dataSource" class="org.apache.ibatis.datasource.pooled.PooledDataSource">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/skeyeoa" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
2、配置SqlSessionFactory代理对象
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
//注入数据源dataSource
<property name="dataSource" ref="dataSource"></property>
//注入数据源dataSource
<property name="mapperLocations" value="classpath:com/ssm/wgs/dao/*Mapper.xml"></property>
//注入数据源dataSource
<property name="typeAliasesPackage" value="com.ssm.wgs.entity" />
</bean>
在定义SqlSessionFactoryBean的时候,dataSource属性是必须指定的,它表示用于连接数据库的数据源。当然,我们也可以指定一些其他的属性,下面简单列举几个:
mapperLocations:它表示我们的Mapper文件存放的位置,当我们的Mapper文件跟对应的Mapper接口处于同一位置的时候可以不用指定该属性的值。
configLocation:用于指定Mybatis的配置文件位置。如果指定了该属性,那么会以该配置文件的内容作为配置信息构建对应的SqlSessionFactoryBuilder,但是后续属性指定的内容会覆盖该配置文件里面指定的对应内容。
typeAliasesPackage:它一般对应我们的实体类所在的包,这个时候会自动取对应包中不包括包名的简单类名作为包括包名的别名。多个package之间可以用逗号或者分号等来进行分隔。(value的值一定要是包的全名)
typeAliases:数组类型,用来指定别名的。指定了这个属性后,Mybatis会把这个类型的短名称作为这个类型的别名,前提是该类上没有标注@Alias注解,否则将使用该注解对应的值作为此种类型的别名。(value的值一定要是类的完全限定名)
configLocation:用于指定Mybatis的配置文件位置。如果指定了该属性,那么会以该配置文件的内容作为配置信息构建对应的SqlSessionFactoryBuilder,但是后续属性指定的内容会覆盖该配置文件里面指定的对应内容。
typeAliasesPackage:它一般对应我们的实体类所在的包,这个时候会自动取对应包中不包括包名的简单类名作为包括包名的别名。多个package之间可以用逗号或者分号等来进行分隔。(value的值一定要是包的全名)
typeAliases:数组类型,用来指定别名的。指定了这个属性后,Mybatis会把这个类型的短名称作为这个类型的别名,前提是该类上没有标注@Alias注解,否则将使用该注解对应的值作为此种类型的别名。(value的值一定要是类的完全限定名)
它将会找类路径下的映射器并自动将它们创建成MapperFactoryBean(Mapper接口代理对象)
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
<property name="basePackage" value="com.ssm.wgs.dao" ></property>
</bean>
<property name="sqlSessionFactoryName" value="sqlSessionFactory"/>会根据value的值找到SqlSessionFactory代理对象并注入
basePackage 属性是让你为映射器接口文件设置基本的包路径
JAVA代码
原:
public class RightServiceImpl implements RightService {
private RightsMapper mapper;
@Autowired //自动注入注解
SqlSessionFactory sqlSessionFactory = null;
public List<Rights> getAllRights() {
SqlSession session = sqlSessionFactory.openSession();
mapper = session.getMapper(RightsMapper.class);
List<Rights> rightList = mapper.selectByExample(null);
session.close();
return rightList;
}
}
改:
public class RightServiceImpl implements RightService {
@Autowired
private RightsMapper mapper;
public List<Rights> getAllRights() {
List<Rights> rightList = mapper.selectByExample(null);
return rightList;
}
}
通过两段代码对比可以看出,第二段省略了很多代码:
其中省略的
SqlSession session = sqlSessionFactory.openSession();
mapper = session.getMapper(RightsMapper.class);
已经交给配置文件中
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryName" value="sqlSessionFactory"></property>
<property name="basePackage" value="com.ssm.wgs.dao" ></property>
</bean>
来完成了。