MyBatis学习系列三——结合Spring
目录
MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBatis结合到Spring框架中。
数据库环境:MySQL
1、源码结构图

引用Jar包:

说明:Spring的Jar包,这里不再详细说明。
MyBatis相关的Jar包:mybatis-3.2.8.jar、mybatis-spring-1.1.1.jar
MySQL相关的Jar包:mysql-connector-java-5.0.8.jar
2、MyBatis和Spring的结合
DAO和PO中的文件(DoctorMapper.java、DoctorMapper.xml、Doctor.java)我们在前两期中已经详细的说明过。
MyBatis的映射配置文件mybatis-config.xml 关联到 applicationContext.xml 中,获取sqlSessionFactory,
applicationContext.xml源码如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <context:component-scan base-package="nankang/service" />
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"
p:driverClassName="com.mysql.jdbc.Driver"
p:url="jdbc:mysql://localhost:3306/childrendb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"
p:username="root"
p:password="world" />
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis-config.xml" />
<property name="dataSource" ref="dataSource" />
</bean> </beans>
mybatis-config.xml进行了简化,去掉了连接数据库的部分,源码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<mappers>
<mapper resource="nankang/dao/DoctorMapper.xml" />
</mappers>
</configuration>
3、代码中使用SqlSessionFactory
在后台提供数据服务的DoctorService中,直接使用SqlSessionFactory即可,源码如下:
package nankang.service; import java.util.List; import nankang.dao.DoctorMapper;
import nankang.po.Doctor; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; @Service
public class DoctorService { @Autowired
private SqlSessionFactory sqlSessionFactory; public Doctor getAllDoctors() { SqlSession sqlSession = sqlSessionFactory.openSession();
DoctorMapper doctorMapper = sqlSession.getMapper(DoctorMapper.class); List<Doctor> doctorList = doctorMapper.selectAllDoctors();
return doctorList.get(0);
}
}
4、Spring结构相关
Spring相关的,获取结果并展示,可以参考源码。
5、结果展示
浏览器中输入:http://localhost:8080/myBatis3/index.html
展示结果:

6、源码下载:http://pan.baidu.com/s/1pJmeYpX (Fish的分享>MyBatis>myBatis3.rar)
MyBatis学习系列三——结合Spring的更多相关文章
- mybatis学习系列三(部分)
1 forearch_oracle下批量保存(47) oracle批量插入 不支持values(),(),()方式 1.多个insert放在begin-end里面 begin insert into ...
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
- MyBatis学习系列一之环境搭建
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 学习一个新的知识,首先做一个简单的例子使用一下,然后再逐步深入.MyBat ...
- MyBatis学习 之 三、动态SQL语句
目录(?)[-] 三动态SQL语句 selectKey 标签 if标签 if where 的条件判断 if set 的更新语句 if trim代替whereset标签 trim代替set choose ...
- 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置
[转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...
- mybatis入门系列三之类型转换器
mybatis入门系列三之类型转换器 类型转换器介绍 mybatis作为一个ORM框架,要求java中的对象与数据库中的表记录应该对应 因此java类名-数据库表名,java类属性名-数据库表字段名, ...
- scrapy爬虫学习系列三:scrapy部署到scrapyhub上
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- DocX开源WORD操作组件的学习系列三
DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...
- RabbitMQ学习系列三-C#代码接收处理消息
RabbitMQ学习系列三:.net 环境下 C#代码订阅 RabbitMQ 消息并处理 http://www.80iter.com/blog/1438251320680361 http://www. ...
随机推荐
- ndk android studio万年坑
先说javah万年坑 javah语法: Usage: javah [options] <classes> where [options] include: -o <file> ...
- CentOS yum安装和配置MySQL(转载)
From:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html] 一.MySQL简介 说到数据库,我们大多想到 ...
- SqlServer2005基于已有表创建分区
随着当今数据库的容量越来越快的朝着在大型数据库或超大型数据库的发展,对于数据库中的大 型表以及具有各种访问模式的表的可伸缩性和可管理性运行环境变得尤为重要, SQL server 从 SQL serv ...
- java反射1
一.Class部分 加载类的几种方式 // 1. Class clazz = Class.forName("com.wzh.test.reflect.Person"); // 2. ...
- Python基础05 缩进和选择
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例. ...
- NPM使用
安装路径修改: 4.配置npm的全局模块存放路径和cache路径 输入以下命令 npm config set prefix “D:\Program Files\node\node-global” n ...
- SQL Server 2005 不允许远程连接解决方法
刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:“在连接到 SQL Server 2005 时,在默认的设 置下 SQL Server 不允许进行远程连接可能会导致此失 ...
- 求链表中倒数第k个节点
注意鲁棒性和算法效率的典型例题:(头文件省略) typedef struct node { int data; struct node* next; }ListNode; ListNode* Find ...
- Hadoop2.6.0错误
错误1: WARN hdfs.DFSClient: DataStreamer Exception org.apache.hadoop.ipc.RemoteException(java.io.IOExc ...
- 【转】java内部类的作用
http://andy136566.iteye.com/blog/1061951/ 推荐一. 定义 放在一个类的内部的类我们就叫内部类. 二. 作用 1.内部类可以很好的实现隐藏 一般的非内部类,是不 ...