Spring 整合mybatis 与 Mybatis 比较

一 先来看 为整合的Mybatis 使用过程
1 接口服务
public interface ServerDao{
public User selUser(username);//根据用户名查找用户对象信息 
}

2 接口服务对应的sql映射文件(serverdao.xml)
//xml 前缀。。。
<mapper namespace="Mapper.ServerDao"> 
    <select id="selUser" resultType="User" parameterType="String">
       select * from user where username = #{username}

</select>
</mapper>

3 mybatis_config 配置
//xml 前缀。。。
<configuration>
<environments default="development">
//配置数据源
<environment id="development"> 
<transactionManager type="jdbc"/> 
<dataSource type="POOLED"> 
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/> 
<property name="url" value="jdbc:oracle:thin:@192.168.56.201:1521:system"/> 
<property name="username" value="vincent"/> 
<property name="password" value="1234"/> 
</dataSource> 
</environment> 
</environments> 

//配置拥有的 映射文件
<mappers> 
<mapper resource="serverdao.xml" /> 
</mappers> 

</configuration>

4 dao 类

      String resource = "resource/mybatis-config.xml";
 Reader reader = null;
 reader = Resources.getResourceAsReader(resource);
 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);//可连接数据库 且拥有了sql映射配置
 
SqlSession sqlSession = sqlSessionFactory.openSession();
 ServerDao serverDao = sqlSession.getMapper(ServerDao.class); //个人理解 根据类名和xml文件名相同来匹配 将服务接口和对应的SQL操作匹配映射
 User user = serverDao.selUser("jun");
 //sqlSession.commit();插入操作这里一定要提交,不然数据进不去数据库中
 sqlSession.close();

二:Spring 整合mybatis配置
1 映射器接口
        public interface ServerDao{
public User selUser(username);//根据用户名查找用户对象信息 
  }

    2 映射接口 与 sql 的映射文件(serverdao.xml)
//xml 前缀。。。
<mapper namespace="Mapper.ServerDao"> 
<select id="selUser" resultType="User" parameterType="String">

       select * from user where username = #{username}
  </select>
</mapper>


3 数据源的配置 不用在mybatis 中配置了,交给spring来管理, 同样 sqlSessionFactory 的bean 创建也交给spring来管理,同时指明 dao的服务接口
<xml 前缀>
<beans xmlns:....>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 
<property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property>
 <property name="url"> <value>jdbc:oracle:thin:@192.168.1.134:1521:orcl</value> </property>
 <property name="username"> <value>scott</value> </property>
 
<property name="password"> <value>oracle</value> </property>
 
</bean>

<!-- 配完数据源 和 拥有的 sql映射文件 sqlSessionFactory 也可以访问数据库 和拥有 sql操作能力了-->
 
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 
<property name="configLocation" value="classpath:/config/mybatis-config.xml"></property>
<property name="dataSource" ref="dataSource" />
 
</bean>

<!-- 通过设置 mapperInterface属性,使接口服务bean 和对应xml文件管理 可以使用其中的sql -->
<bean id="serverDao" class="org.mybatis.spring.mapper.MapperFactoryBean" >
<!-- 此处等同于 Mybatis 中 ServerDao serverDao = sqlSession.getMapper(ServerDao.class); 指明映射关系-->
 <property name="mapperInterface" value="com.azc.dao.ServerDao" /> 
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean> 

</beans>


4 mybatis_config.xml  文件不需要在配置数据源,只需要指明对应的映射xml文件jike
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <mappers>
 <mapper resource="com/azc/dao/UserDao.xml"/>
 </mappers>
</configuration>

5调用时
注入该接口的一个 上溯对象
Class Demo{
private ServerDao serverDao;
//set  get Method....
serverDao.selUser(username);
} 

 

  





 

原文地址:https://www.cnblogs.com/leonkobe/p/3208576.html