1、在pom文件中配置需要依赖的jar
2、搭建环境,创建dao和 实体类书写三个配置文件
目录结构如图所示:
3、jdbc.properties配置:
driverName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/项目名 username=root password=123456
4、spring-mybtais.xml配置有
<!-- 第一步:引入properties配置文件,用util标签不要忘了配置头文件--> <util:properties id="prop" location="jdbc.properties"></util:properties> <!--第二步: 数据源配置--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="#{prop.driverName}"/> <property name="url" value="#{prop.url}"/> <property name="username" value="#{prop.username}"/> <property name="password" value="#{prop.password}"/> </bean> <!--第三步: 通过Spring 来获取sqlSessionFactory实例,让Spring根据该工出厂实例获取sqlSession --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--配置连接数据库数据源,ref的值 和上面相对应--> <property name="dataSource" ref="dataSource"/> <!--配置mapper文件所在位置--> <property name="mapperLocations" value="classpath:/mapper/*Mapper.xml"/> </bean> <!--第四步 生成单个代理对象 --> <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="cn.mybatis.dao.IUserDao" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean>
注意 这样子使用有一个问题 就是每次创建一个代理对象就要写一次
<!-- 第五步: 再将sqlsessionTemplate的bean实例通过注解扫描的方式注入到service实现类中 -->
<context:component-scan base-package="cn.mybatis.service"/>
5、Service的实现类:
@Service("userService1") public class UserServiceImpl1 implements UserService{ @Autowired private UserDAO userDAO; public UserBean getUserById(String userId) { UserBean userBean=userDAO.findUserById("1001"); return userBean; } }
SqlSessionFactoryBean的简介
通过SqlSessionFactoryBean 还可以定义一些属性来指定Mybatis 框架的配置信息,常用属性如下:
1、dataSource 指定连接数据库的数据源(必要属性);
2、mapperLocations 指定Mapper.xml文件的位置
3、configLocation 用来指定Mybatis的配置文件的位置,如果指定该属性,则会以该配置文件内容来构建对应的SQLSessionFactoryBuilder。
4、typeAliasesPackage 用来给包中的类注册别名,注册后可以直接使用类名,而不用使用全限定的类名(就是不用包含包名)。
MapperScannerConfigurer配置
使用MapperFactoryBean时,也有一个缺点,就是有一个DAO组件就需要在配置文件定义一个相对应的MapperFactoryBean,但是在实际开发中多个功能模块儿是需要多个DAO组件的,所以使用MapperFactoryBean会使配置文件变的繁琐,此时我们可以使用MapperScannerConfigurer组件批量扫描指定包下所有DAO。
<!--使用该组件时,只需要指定一个basePackage,多个包之间可以用分号隔开-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.gok.dao"/>
</bean>
提示:SqlSessionFactoryBean可以不指定,会以Autowired方式注入