到目前为止,我们已经学习了如何使用Blueprint將Spring框架整合到OSGI应用中,并学习了Blueprint&Gemini Blueprint的一些使用细节。本篇文章开始,我们將Mybatis框架整合到OSGI应用中。

一、获取Mybatis框架Bundle

Mybatis框架的Bundle获取比较简单,因为Mybatis框架在发布Release版本时就考虑到用户可能会在OSGI应用中使用Mybatis,所以从官方地址下载得到的Jar包本身就是一个Bundle,MANIFEST.MF文件中包含完整的Bundle描述信息。

读者可以从Mybatis官方下载地址获取Mybatis框架的Bundle,官方地址如下:

https://github.com/mybatis/mybatis-3/releases

如下图所示:

读者只需要选择合适的版本下载即可,笔者选择的Mybatis版本为3.1.1,下载后解压目录结构如下:



如上图所示,我们只需要mybatis-3.1.1.jar文件,除此之外,我们如果想把Mybatis和Spring整合,还需要获取Mybaits框架的Spring插件,下载地址如下:

https://github.com/mybatis/spring/releases

笔者选择的Mybatis-Spring插件版本为1.2.0,下载后解压目录结构如下图所示,其中mybatis-spring-1.2.0.jar为我们需要的Bundle。

二、添加Mybatis相关Bundle到OSGI运行环境

上一步我们获取到Mybatis框架核心Bundle,以及用于和Spring框架整合的Mybatis-Spring插件Bundle,接下来我们需要將这些Bundle添加到OSGI运行环境中。

首先需要在DynamicRuntime工程中新建一个mybatis目录,然后將mybatis-3.1.1.jar和mybatis-spring-1.2.0.jar两个包复制到该目录中,如下图所示:



接着单击Window=>Preferences菜单,然后单击Plug-in Development=>Target Platform选项,如下图所示:



选择我们之前自定义的DynamicRuntime,单击Edit按钮,如下图所示:



单击Add按钮,添加${workspace_loc}\DynamicRuntime\mybatis目录即可。

三、新建数据库

由于Mybatis是数据持久化框架,和数据库交互是必不可少的,由于MySql数据库安装和使用都比较简单,笔者打算使用MySql进行项目演示,读者请自行安装MySql。

我们需要建一个数据库实例和一张表,SQL语句如下:

create database osgi;

CREATE TABLE `osgi`.`user` (
`uid` INT NOT NULL AUTO_INCREMENT,
`username` VARCHAR(30) NOT NULL,
`password` VARCHAR(45) NOT NULL,
PRIMARY KEY (`uid`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin; use osgi; insert into user(username,password) values('Smith',"Smith");
insert into user(username,password) values('Jane',"Jane");

上面SQL中,我们新建了名称为osgi的数据库,并在该数据库中新建了一张user表,用来保存用户信息,接着插入了两条演示数据。

四、获取MySql驱动Bundle

Java操作MySql数据库,数据库驱动是必不可少的,但是从MySql官方网站下载的驱动只是一个普通的Jar包,而不是一个完整的Bundle,我们可以从SpringSource Enterprise Bundle Repository网站获取Bundle版本的MySql驱动,下载地址:

http://ebr.springsource.com/repository/app/bundle

搜索关键字MySql即可,搜索结果如下图所示:



下载完毕后,在DynamicRuntime工程中,新建一个mysql目录,將驱动Bundle复制到该目录中,如下图所示:



接着和添加Mybatis Bundle相同的方式,將MySql驱动Bundle添加到OSGI运行平台中。

五、获取dbcp数据源Bundle

整合Spring和Mybatis框架还需要数据源,可供选择的有dbcp或者c3p0数据源,笔者使用dbcp数据源整合Mybatis框架。

首先需要获取dbcp数据源Bundle,我们可以从SpringSource Enterprise Bundle Repository网站获取,我们需要如下两个Bundle:

com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
com.springsource.org.apache.commons.pool-1.3.0.jar

接着在DynamicRuntime项目中,新建一个common目录,將这两个Bundle复制到该目录,如下:



然后按照前面的步骤,將common目录下的Bundle添加到Equinox运行环境中即可。

到目前为止,我们的准备工作已经完成了,下篇文件继续介绍OSGI应用中Spring与Mybatis框架的整合。

转载请注明原文地址:http://blog.csdn.net/Rongbo_J/article/details/53889514

OSGI企业应用开发(八)整合Spring和Mybatis框架(一)的更多相关文章

  1. OSGI企业应用开发(九)整合Spring和Mybatis框架(二)

    上篇文章中,我们完成了在OSGI应用中整合Spring和Mybatis框架的准备工作,本节我们继续Spring和Mybatis框架的整合. 一.解决OSGI整合Spring中的Placeholder问 ...

  2. OSGI企业应用开发(十)整合Spring和Mybatis框架(三)

    上篇文章中,我们已经完成了OSGI应用中Spring和Mybatis框架的整合,本文就来介绍一下,如何在其他Bundle中,使用Mybatis框架来操作数据库. 为了方便演示,我们新建一个新的Plug ...

  3. 框架整合——Spring与MyBatis框架整合

    Spring整合MyBatis 1. 整合 Spring [整合目标:在spring的配置文件中配置SqlSessionFactory以及让mybatis用上spring的声明式事务] 1). 加入 ...

  4. OSGI企业应用开发(十二)OSGI Web应用开发(一)

    前面文章中介绍了如何在OSGI应用中整合Spring和Mybatis框架,本篇文章开始介绍如何使用OSGI技术开发Web应用.对于传统的Java EE应用,应用中涉及到的Web元素无非就是Servle ...

  5. 搭建Spring + SpringMVC + Mybatis框架之二(整合Spring和Mybatis)

    整合Spring和Mybatis 首先给出完整的项目目录: (1)引入项目需要的jar包 使用http://maven.apache.org作为中央仓库即可. Spring核心包,mybatis核心包 ...

  6. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(2 配置spring-dao和测试)

    用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 搭建目录环境和依赖) 四:在\resources\spring 下面 ...

  7. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 构建目录环境和依赖)

    引言:在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一   的基础上 继续进行项目搭建 该部分的主要目的是测通MyBatis 及Spring-dao ...

  8. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目

    一:创建maven web项目er

  9. 使用maven整合spring+springmvc+mybatis

    使用maven整合spring+springmvc+mybatis 开发环境: 1. jdk1.8 2. eclipse4.7.0 (Oxygen) 3. mysql 5.7 在pom.xml文件中, ...

随机推荐

  1. mongo开发标准(待完善)

    MongoDB开发规范 1.mongoDB库的设计mongodb数据库命名规范:db_xxxx禁止使用任何 " _ "(下划线)外的特殊字符 禁止使用数字打头的库名 数据库名最多为 ...

  2. 【xsy2913】 enos 动态dp

    题目大意:给你一棵 $n$个点 以 $1$为根 的树,每个点有$ 0,1,2 $三种颜色之一,初始时整棵树的颜色均为 $0$. $m$ 次操作, 每次操作形如: 1 x y c : 将 $x$到$y$ ...

  3. POJ 2887

    #include <iostream> #include <string> #define MAXN 2000 using namespace std; struct node ...

  4. (转)关于python3中staticmethod(静态方法)classmethod(类方法)实例方法的联系和区别

    原文:http://dmcoders.com/2017/08/30/pythonclass/ https://zhuanlan.zhihu.com/p/28010894------正确理解Python ...

  5. centos 7 hadoop的安装和使用

    准备工作 安装jdk 用户免密登录 安装参考文章: http://blog.csdn.net/circyo/article/details/46724335 http://www.linuxidc.c ...

  6. Redis学习系列四Hash(字典)

    一.简介 Redis中的Hash字典相当于C#中的Hashtable,是一种无序字典,内存存储了很对的键值对,实现上和Hashtable一样,都是"数组+链表"二维结构,都是对关键 ...

  7. C# String.Format的格式限定符与Format方法将多个对象格式化一个字符串原理

    Format方法将多个对象格式化成一个字符串Format方法解析格式字符串的原理: (1).格式字符串中的{0}会被替换成格式字符串之后的第一个参数,以此类推 (2).Format方法解析格式字符串时 ...

  8. C#基础篇十小练习

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P03练 ...

  9. TiDB 部署及数据同步

    简介 TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 HTAP (Hybrid Transactional and Analytical Pr ...

  10. 【LeetCode题解】61_旋转链表(Rotate-List)

    目录 描述 解法:双指针 思路 Java 实现 Python 实现 复杂度分析 描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1-> ...