OSGI企业应用开发(十)整合Spring和Mybatis框架(三)
来源:互联网 发布:播放软件大全排行 编辑:程序博客网 时间:2024/06/05 19:16
上篇文章中,我们已经完成了OSGI应用中spring和Mybatis框架的整合,本文就来介绍一下,如何在其他Bundle中,使用Mybatis框架来操作数据库。
为了方便演示,我们新建一个新的Plug-in Project工程,名称为com.csdn.osgi.user,表示用户模块。
上篇文章中,我们使用<osgi:service/>
标签將用于操作数据库的SqlSessionTemplate实例注册为服务,配置如下:
<osgi:service id="sqlMapService" ref="sqlSessionTemplate" interface="org.apache.ibatis.session.SqlSession" />
- 1
- 1
如果需要在其他Bundle中使用Mybatis框架来操作数据库,则必须將sqlMapService引入,然后注入到DAO对象中。
因此我们需要在com.csdn.osgi.user工程的META-INF目录下新建一个spring目录,然后在该目录下新建一个dmconfig.xml文件用于引用其他Bundle注册的Bean。
dmconfig.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:osgix="http://www.springframework.org/schema/osgi-compendium" xmlns:ctx="http://www.springframework.org/schema/context" xmlns:osgi="http://www.eclipse.org/gemini/blueprint/schema/blueprint" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/osgi-compendium http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd http://www.eclipse.org/gemini/blueprint/schema/blueprint http://www.eclipse.org/gemini/blueprint/schema/blueprint/gemini-blueprint.xsd"> <osgi:reference id="sqlMapService" interface="org.apache.ibatis.session.SqlSession" /></beans>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
前面文章中已经介绍到,引用其他Bundle发布的Bean,需要用到<osgi:reference/>
标签。
接下来我们可以新建一个DAO类,將sqlMapService注入,这样就可以使用SqlSessionTemplate实例操作数据库了。
我们的DAO类名称为com.csdn.osgi.user.UserDao,内容如下:
package com.csdn.osgi.user;import java.util.HashMap;import org.apache.ibatis.session.SqlSession;public class UserDao { SqlSession sqlSession; public SqlSession getSqlSession() { return sqlSession; } public void setSqlSession(SqlSession sqlSession) { this.sqlSession = sqlSession; } public void start(){ System.out.println("UserDao start function..."); HashMap userInfoMap = new HashMap(); userInfoMap.put("UserName", "Jack"); userInfoMap.put("Password", "Jack"); sqlSession.insert("user.saveUser",userInfoMap); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
接着可以在META-INF/spring目录下新建一个user.xml文件,配置一个UserDao 类的实例,并將將sqlMapService注入,user.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userDao" class="com.csdn.osgi.user.UserDao" init-method="start"> <property name="sqlSession" ref="sqlMapService"></property> </bean></beans>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
工程目录及文件结构如下图所示:
接下来还需要对com.csdn.osgi.user工程中的MANIFEST.MF文件进行修改,添加Bundle依赖,内容如下,其中Require-Bundle元数据头为新增。
Manifest-Version: 1.0Bundle-ManifestVersion: 2Bundle-Name: UserBundle-SymbolicName: com.csdn.osgi.userBundle-Version: 1.0.0.qualifierBundle-Vendor: CSDNBundle-RequiredExecutionEnvironment: JavaSE-1.8Require-Bundle: org.mybatis.mybatis;bundle-version="3.1.1", org.mybatis.mybatis-spring;bundle-version="1.2.3", com.springsource.com.mysql.jdbc;bundle-version="5.1.6", org.springframework.jdbc;bundle-version="3.0.0"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
UserDao的start()方法会在Bean实例化时调用一次,我们在该方法中,通过SqlSessionTemplate实例的insert()方法往数据库中插入一条数据。
接下来启动OSGI容器,然后查询MySQL数据库,会发现每次应用启动,数据库中会新增一条记录,如下图所示:
到此为止OSGI应用中Spring和Mybatis框架的整合已经全部完成了,后续笔者会继续介绍与Spring MVC框架的整合。
- OSGI企业应用开发(十)整合Spring和Mybatis框架(三)
- OSGI企业应用开发(十)整合Spring和Mybatis框架(三)
- OSGI企业应用开发(八)整合Spring和Mybatis框架(一)
- OSGI企业应用开发(九)整合Spring和Mybatis框架(二)
- OSGI企业应用开发(八)整合Spring和Mybatis框架(一)
- OSGI企业应用开发(九)整合Spring和Mybatis框架(二)
- OSGI企业应用开发(十四)整合Spring、Mybatis、Spring MVC
- OSGI企业应用开发(四)使用Blueprint整合Spring框架(一)
- OSGI企业应用开发(五)使用Blueprint整合Spring框架(二)
- OSGI企业应用开发(四)使用Blueprint整合Spring框架(一)
- OSGI企业应用开发(五)使用Blueprint整合Spring框架(二)
- OSGI企业应用开发(十五)基于Spring、Mybatis、Spring MVC实现一个登录应用
- Spring+SpringMVC+Mybatis整合系列(三)SSM框架整合
- Spring+SpringMVC+Mybatis整合系列(三)SSM框架整合
- OSGI企业应用开发(一)OSGI简介
- OSGI企业应用开发(一)OSGI简介
- OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
- OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境
- 有关JavaScript中的节点类型
- POJ 3692 Kindergarten(二分图)
- 51nod 瞬间移动 (组合数学)
- PickerView3D滚轮控件
- 万事起于忽微,量变引起质变
- OSGI企业应用开发(十)整合Spring和Mybatis框架(三)
- Objective-C开发编码规范
- 一篇很全面的freemarker教程
- Google服务器架构图解简析
- JavaScript里有无var声明你了解多少?
- mysql在linux下的安装
- String ,StringBuffer ,StringBuild 区别
- 脏读、幻读、不可重复读 小结
- 每天一个Linux命令-sed