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);
}

  





优质内容筛选与推荐>>
1、[ACM_几何] Metal Cutting(POJ1514)半平面割与全排暴力切割方案
2、雨的随想
3、将文件夹复制到列表中的远程主机
4、java_synchronized 用法
5、Spark学习资料


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号