转自:https://blog.csdn.net/nnn9223643/article/details/41962097

在 这一系列文章中,前面讲到纯粹用mybatis 连接数据库,

然后 进行增删改查,以及多表联合查询的的例子,

但实际项目中,通常会用 spring 这个沾合剂来管理 datasource 等。

充分利用spring 基于接口的编程,以及aop ,ioc 带来的方便。

用spring 来管理 mybatis 与管理hibernate 有很多类似的地方。今天的重点就是数据源管理以及 bean的配置。

1. 首先对前面的工程结构做一点改变,在src_user源代码目录下建立文件夹config ,

并将原来的 mybatis 配置文件 Configuration.xml 移动到这个文件夹中,

并在config 文家夹中建立 spring 配置文件:applicationContext.xml ,这个配置文件里最主要的配置:

 1 <!--本示例采用DBCP连接池,应预先把DBCP的jar包复制到工程的lib目录下。 -->
 2
 3   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
 4      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
 5      <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=utf8"/>
 6      <property name="username" value="root"/>
 7      <property name="password" value="password"/>
 8   </bean>
 9 //SqlSessionFactoryBean--为整合应用提供SqlSession对象资源--就是中间件所需的处理类
10   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
11      <!--dataSource属性指定要用到的连接池-->
12      <property name="dataSource" ref="dataSource"/>
13      <!--configLocation属性指定mybatis的核心配置文件  Mybatis自身的配置文件,一般用来声明别名-->
14      <property name="configLocation" value="config/Configuration.xml"/>
15   </bean>
16  //MapperFactoryBean--根据指定的Mapper接口生成Bean实例
17   <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
18      <!--sqlSessionFactory属性指定要用到的SqlSessionFactory实例-->
19      <property name="sqlSessionFactory" ref="sqlSessionFactory" />
20      <!--mapperInterface属性指定映射器接口,用于实现此接口并生成映射器对象-->
21      <property name="mapperInterface" value="com.yihaomen.mybatis.inter.IUserOperation" />
22   </bean> 

[b]这里面的重点就是 org.mybatis.spring.SqlSessionFactoryBean 与 org.mybatis.spring.mapper.MapperFactoryBean[b] 实现了 spring  的接口,

并产生对象。详细可以查看 mybatis-spring 代码。(http://code.google.com/p/mybatis/),如果仅仅使用,固定模式,这样配置就好。

 1 package com.yihaomen.test;
 2
 3 import java.util.List;
 4
 5 import org.springframework.context.ApplicationContext;
 6 import org.springframework.context.support.ClassPathXmlApplicationContext;
 7
 8 import com.yihaomen.mybatis.inter.IUserOperation;
 9 import com.yihaomen.mybatis.model.Article;
10 import com.yihaomen.mybatis.model.User;
11
12
13 public class MybatisSprintTest {
14
15     private static ApplicationContext ctx;
16
17     static
18     {
19         ctx = new ClassPathXmlApplicationContext("config/applicationContext.xml");
20     }
21
22     public static void main(String[] args)
23     {
24         IUserOperation mapper = (IUserOperation)ctx.getBean("userMapper");
25         //测试id=1的用户查询,根据数据库中的情况,可以改成你自己的.
26         System.out.println("得到用户id=1的用户信息");
27         User user = mapper.selectUserByID(1);
28         System.out.println(user.getUserAddress());
29
30         //得到文章列表测试
31         System.out.println("得到用户id为1的所有文章列表");
32         List<Article> articles = mapper.getUserArticles(1);
33
34         for(Article article:articles){
35             System.out.println(article.getContent()+"--"+article.getTitle());
36         }
37
38     }
39
40
41 }

运行即可得到相应的结果.
工程图:

用到的jar包,如下图:

转载于:https://www.cnblogs.com/sharpest/p/5357280.html

5.mybatis实战教程(mybatis in action)之五:与spring3集成(附源码)相关推荐

  1. mybatis实战教程(mybatis in action),mybatis入门到精通

     目录(?) [-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程 ...

  2. 微信公众平台开发教程(四) 实例入门:机器人(附源码)

    微信公众平台开发教程(四) 实例入门:机器人(附源码) 上一篇文章,写了基本框架,可能很多人会觉得晕头转向,这里提供一个简单的例子来予以说明,希望能帮你解开谜团. 一.功能介绍 通过微信公众平台实现在 ...

  3. MATLAB应用实战系列(五十三)-模拟退火算法(附源码)

    模拟退火算法 模拟退火算法在处理全局优化.离散变量优化等困难问题中,具有传统优化算法无可比拟的优势.这里描述模拟退火算法的原理及其基本框架结构,给出用模拟退火算法求解TSP问题的具体实现方法 以下是我 ...

  4. Netty实战:Springboot+Netty+protobuf开发高性能服务器 (附源码下载)

    Springboot-cli 开发脚手架系列 Netty系列:Springboot使用Netty集成protobuf开发高性能服务器 文章目录 Springboot-cli 开发脚手架系列 简介 1. ...

  5. 04【Verilog实战】SPI协议底层硬件接口设计(附源码RTL/TB)

    脚  本:makefile 工  具:vcs 和 verdi 写在前面 这个专栏的内容记录的是个人学习过程,博文中贴出来的代码是调试前的代码,方便bug重现. 调试后的程序提供下载,[下载地址] 发现 ...

  6. mybatis实战教程(mybatis in action)之二:以接口的方式编程

    前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询.请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selec ...

  7. HQChart实战教程42 - 新浪期货数据源对接 - uniapp版本 (源码付费)

    HQChart实战教程41 - HQChart实战教程42 - 新浪期货数据源对接 - uniapp版本 数据源 支持周期 期货品种 平台支持 demo安卓apk下载 源码售价 800元 效果截图 H ...

  8. b站学python_Python爬虫学习教程 bilibili网站视频爬取!【附源码】

    python爬虫学习教程,万物皆可爬!每个技术大牛都是从基础慢慢的提升上去的,基础知识越深以后的发展越牛!学好python,才能玩转python,那到底怎么才能学好python? 通过爬取b站案例带领 ...

  9. 【Vue 实战项目】后台管理系统登录页详解附源码

    提示:前端查漏补缺,仅代表个人观点. 文章目录 一.先看效果图 二.实战步骤 1. 创建项目 2. 引入库 3. 登录页关键代码 三.页面源代码 总结 提示:项目源代码除了登录页面还有动态路由 一.先 ...

  10. 实战|仿应用宝下载并安装App(附源码)

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为2499字,预计阅读7分钟 仿应用宝下载安装App 前面几章我们学习了检测App是否安装,能过AsyncTask下载App并调用 ...

最新文章

  1. 《F4+2》—团队项目系统设计改进与详细设计
  2. TensorFlow学习入门
  3. 阿里腾讯面试梳理个人成长经历分享
  4. php 控制器方法,ThinkPhp3.2跨控制器调用方法
  5. PHP网站加功能,如何实现添加分类的功能
  6. eclipse根据wsdl文件生成webservice客户端
  7. 线性插值 多项式插值 样条插值 牛顿插值总结
  8. eyb:Java代码通过FastDFS实现文件上传
  9. led伏安特性实验误差分析_大学物理实验伏安特性曲线的误差分析以及小结要怎么写,谢谢^ω^...
  10. python人脸识别实验报告总结_人脸识别实验报告.doc
  11. 苏州企业注册商标需要提前做好哪些工作?
  12. Deepin系统navicat15安装
  13. 北航计算机组成实验project4,北航fpga实验的报告.docx
  14. LateX使用笔记(持续更新)
  15. 插入mysql数据库时间相差14个小时
  16. 华为面试题目:一头牛重800kg,一座桥承重700kg,牛如何过河?最秀回答秒过!...
  17. 【ML】混淆矩阵(Accuracy,Precision,Recall,F1)
  18. PTN与IPRAN承载LTE的比较
  19. 一步一步教你用 Python 开发战棋游戏,仿英雄无敌
  20. Spark-submit:System memory 466092032 must be at least 471859200

热门文章

  1. 【Matlab学习笔记】【数学形态学】分水岭分割算法
  2. PyQt5多线程刷新界面防假死
  3. 从零基础入门Tensorflow2.0 ----九、44.1 keras 保存模型、参数
  4. P+XS算法中Dirac comb的解释
  5. c语言if的判定条件,if条件判断语句,谁能帮我分析一下?
  6. Android RecyclerView之SnapHelper原理解析(一)
  7. Android完美适配dimens.xml脚本
  8. 4种方案,帮你解决Maven创建项目过慢问题
  9. 再见,我的程序青葱岁月!
  10. SuperIndicator 专做轮播图库,没有之一,支持无限循环