1 - 创建数据库

2 - 添加依赖

3 - 定义实体类

4 - 定义 Dao 接口和实现类

5 - 定义映射文件 mapper

6 - 定义 MyBatis 主配置文件

在 src 下定义 MyBatis 的主配置文件,命名为 mybatis.xml 。
这里有两点需要 注意
(1 )主配置文件中不再需要数据源的配置了。因为数据源要交给 Spring 容器来管理了。
(2 )这里对 mapper 映射文件 的注册,使用 <package/> 标签,即只需给出 mapper 映射文件所 在的包即可。因为 mapper 的名称与 Dao 接口名相同,可以使用这种简单注册方式。 这种方式的好处是,若有多个映射文件,这里的配置也是不用改变的。当然,也可使用原来的 <resources/> 标签方式。

<configuration>
<!--别名-->
	<typeAliases>
		<!--
		package:把包下面的所有类名作为别名name :实体类的包名
		-->
		<package name="com. bjpowernode.beans" />
	</typeAliases>
	<! --sql映射文件的位置-->
	<mappers>
		<!--
		package:指定Dao接口的包的位置,表示把包下面的sql映射文件找到name: Dao接口的包名
		使用package指定映射文件的要求:
		1.sql映射文件名和Dag接口名一致2.sql映射文件和Dag接口在同一目录-->
		<package name="com.bjpowernode.dao" />
	</mappers>
</configuration>

7 - 修改 Spring 配置文件

(1) 数据源的配置 掌握
使用 JDBC 模板,首先需要配置好数据源,数据源直接以 Bean 的形式配置在 Spring 配置文件中。根据数据源的不同,其配置方式不同:
Druid 数据源 Druid DataSource
Druid 是 阿里的开源数据库连接池 。 是 Java 语言中最好的数据库连接池。 Druid 能够提供强大的监控和扩展功能。 Druid 与 其他数据库连接池的最大区别是提供数据库的配置连接池。

<!-―配置阿里的Dx.uid数据库连接池
无需配置驱动,可以根据ucl检测出驱动
―—>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="url" value="jdbc:mysql://127.0.0.1:3306/springdb"/>
<property name="username" value="root" />
<property name="password" value=" root"/> /bean>
 

(2) 从属性文件读取数据库连接信息

Spring 配置文件从属性文件中读取数据时,需要在 <property/> 的 value 属性中使用 ${}将在属性文件中定义的 key 括起来,以引用指定属性的值。

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
	<property name="url" value="${jdbc.url}"/>
	<property name="username" value="$jdbc.user}" />
	<property name="password" value="${jdbc.password}" />
</bean>
 

该属性文件若要被 Spring 配置文件读取,其必须在配置文件中进行注册。 使用 <context> 标签。

<context: property-placeholder location="cLasspath:jdbc.properties"/>

(3) 注册 SqlSessionFactoryBean

<!--注册SqlsessionFactory的Bean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="datasource" ref= "myDatasource"/>
	! --指定mybatis主配置文件位置-->
	<property name="configLocation" value="cLasspath:mybatis.xmL"/>
</bean>

(4) 定义 Mapper 扫描配置器 MapperScannerConfigurer

Mapper 扫描配置器 MapperScannerConfigurer 会自动生成指定的基本包中 mapper 的代理对象。该 Bean 无需设置 id 属性。 basePackage 使用分号或逗号设置多个包。

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	<!--指定基本扫描包,Dao接口包-->
	<property name="basePackage" value="com.abc.dao"/>
</bean>

8 - 向 Service 注入接口名

向 Service 注入 Mapper 代理对象时需要注意,由于通过 Mapper 扫描配置器 MapperScannerConfigurer 生成的 Mapper 代理对象没有名称,所以在向 Service 注入 Mapper 代理时,无法通过名称注入。但可通过 接口的简单类名 注入 ,因为生成的是这个 Dao 接口的对象。

<bean id="myStudentService" class="com.bjpowernode.service.StudentServiceImpl">
<property name="studentDao" ref="studentDao"/>
</bean>

9 - Spring 配置文件全部配置

<!--引入属性配置文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--配置阿里的Dxuid数据厍连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
	init-method="init" destroy-method="close">
	<property name="url" value="$[jdbc.url}" />
	<property name="username" value="${jdbc.user}" />
	<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 注册sqlsessionFactoryBean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.sqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource" />
	<property name="configLocation" value="classpath:mybatis.xml"/>
</bean>
<!--动态代理对象-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	<property name="basePackage" value="com. bjpowernode.dao" />
</bean>
<bean id="studentScrvice" class="com.bjpowernode.service.impl.StudentServiceImpl">
	<property name="studentDao" ref="studentDao" />
</bean>