ioc思想:
步骤:
项目实例:
新建项目(注意项目架构),新建类Student:
新建接口StudentDao,里面有操作数据库的方法:
新建接口的mapper配置文件:
新建mybatis.xml文件,该文件设置了连接数据库的环境,给实体类所在的包设置别名,以及mappers标记通过package标记导入dao包,可以识别dao包下所有的xml文件:
注意,在一般的mybatis项目中,我们是通过在mappers标记中增加mapper标记来将接口的配置文件(StudentDao.xml)加入到主配置文件中,并通过主配置文件来连接数据库。如下:
spring项目对其进行改进,spring项目是一个容器,里面有许多bean对象,可以把连接数据库的操作由一个bean对象来完成,即下图的myDataSource(注意去掉name值为driver的property标记),这是阿里提供的用来连接数据库的类。新建的applicationContext.xml文件如下:
此外还声明了mybatis提供的SslSessionFactory类,这个类是内部创建的,通过property(set注入)把数据库连接交给dataSource(即阿里提供的连接数据库的类),configLocation用于指明mybatis主配置文件信息。
name值为org.mybatis.spring.mapper.MapperScannerConfigurer的bean对象,创建dao对象,使用SqlSession的getMapper(Student.dao)
MapperScannerConfigurer:在内部调用getMapper()生成每个dao接口的代理对象,创建好的dao对象放入spring容器中,dao对象的默认名称是接口首字母小写,如下图通过studentDao获取dao接口的代理对象:
执行结果:
本地mysql数据库中students表的内容:



