本文基于前几篇文章为基础进行编写,需要了解前篇内容的浏览我的博客中的其他文章
今天的主题是使用Nano Framework开发多数据源及多数据源事务处理的示例
1、修改配置并添加新的数据源配置
1.1、修改context.properties
# 将属性mapper.package.jdbc=/examples-jdbc.properties修改为如下配置
mapper.package.root=examples,examples2
mapper.package.jdbc.examples=/examples-jdbc.properties
mapper.package.jdbc.examples2=/examples2-jdbc.properties
1.2、添加examples2-jdbc.properties
JDBC.environment.id=examples2
JDBC.pool.type=DRUID
JDBC.driver=org.h2.Driver
JDBC.url=jdbc:h2:~/test2
JDBC.username=test
JDBC.password=test
JDBC.autoCommit=false
# 省略连接池的属性配置
2、新建数据库及表结构
2.1、启动服务并访问 http://ip:port/first-webapp/console,使用以下信息登录
- URL: jdbc:h2:~/test2
- 用户名: test
- 密码: test
2.2、建表
create table t_nano_test (
id int primary key,
name varchar(255)
)
3、添加多数据源操作代码
3.1、修改JdbcExamplesDao及JdbcExamplesDaoImpl,添加delete方法
long delete(int id) throws SQLException;
private final String deleteById = "DELETE FROM T_NANO_TEST WHERE ID = ? ";
@Override
public long delete(int id) throws SQLException {
return get(DataSource.EXAMPLES.value()).executeUpdate(deleteById, new ArrayList<Object>() {
private static final long serialVersionUID = 1L; {
add(id);
}});
}
3.2、增加JdbcExamplesMoveDao及JdbcExamplesMoveDaoImpl
@ImplementedBy(JdbcExamplesMoveDaoImpl.class)
public interface JdbcExamplesMoveDao {
long insert(Test test) throws SQLException;
}
public class JdbcExamplesMoveDaoImpl implements JdbcExamplesMoveDao {
private final String insert = "INSERT INTO T_NANO_TEST(ID, NAME) VALUES (?, ?) ";
@Override
public long insert(Test test) throws SQLException {
List<Object> values = new ArrayList<>();
values.add(test.getId());
values.add(test.getName());
return get(DataSource.EXAMPLES2).executeUpdate(insert, values);
}
}
3.3、添加Component实现,修改JdbcExamplesComponent及JdbcExamplesComponentImpl
@RequestMapping("/persist/move/{id}")
Object move(@PathVariable("id") Integer id);
@Inject
private JdbcExamplesMoveDao examplesMoveDao;
@JdbcTransactional(envId = {DataSource.EXAMPLES, DataSource.EXAMPLES2})
@Override
public Object move(Integer id) {
try {
Test test = examplsDao.select(id);
if(test == null) {
return ResultMap.create(200, "Not Found Data", "WARNING");
} else {
if(examplesMoveDao.insert(test) > 0) {
examplsDao.delete(id);
}
}
} catch(Exception e) {
throw new ComponentInvokeException(e.getMessage(), e);
}
return ResultMap.create(200, "OK", "SUCCESS");
}
4、启动服务后进行以下操作
- http://ip:port/first-webapp/jdbc/persist/move/1
- http://ip:port/first-webapp/console并登陆test2库查询迁移数据
5、至此,多数据源及多数据源事务的示例就开发完了
分享到:
相关推荐
这篇博客将深入探讨如何在CentOS系统中更新数据源,并提供关于`CentOS-Base.repo`文件的详细信息。 首先,`CentOS-Base.repo`是CentOS系统中的一个配置文件,位于`/etc/yum.repos.d/`目录下。这个文件定义了系统...
Jetson nano 启用摄像头,以jetcam
艾肯4nano最新1.37版本 多通道 完美支持windows10系统
可以并行运行多个神经网络对图像分类,目标检测,分割和语音处理等应用。 附件中是开发过程中收藏的开源芯片数据资料: Jetson_Nano_Carrier_Board_Design_Files_B01.zip Jetson_Nano_Dev_Kit_3D_b01.zip NV_Jetson...
在技术领域,"nano"常常指的是微小或纳米级的事物,暗示此框架可能具有高效、轻量级的特点,旨在处理高度精确和实时的数据。 "Track"在上下文中指的是追踪,这表明该系统能够实时跟踪生产流程中的物料、设备状态...
5. **中断和异常处理**:解释了中断和异常处理机制,包括中断源、中断向量表和中断优先级管理,这对于实时系统尤为重要。 6. **开发工具和调试**:介绍了如何使用开发工具链,如编译器、链接器和调试器,进行应用...
2. LPDDR4内存:4GB的高速内存为AI计算和多任务处理提供了充足的空间,确保了数据传输速度。 三、GPU性能 1. Maxwell GPU:Jetson Nano的GPU具有256个CUDA核心,可以执行大量的并行计算任务,适合图像处理、机器...
【树莓派学习记录 更换数据源 安装wiringpi库】 树莓派是一款基于Linux系统的微型计算机,常用于教育、DIY项目和嵌入式应用。在使用树莓派时,为了获取更快的软件更新速度和更好的系统性能,更换数据源(也称为软件...
在中断处理程序中,使用LL库的函数读取接收到的数据,并通过适当的机制(例如环形缓冲区)传递给用户应用程序。 至于FinSH,这是一个嵌入式系统的命令行接口,它允许开发者在运行时执行各种操作,如查看系统状态、...
由于Jetson Nano支持OpenCV和V4L2等库,可以处理图像和视频流,因此非常适合视觉应用。教程将展示如何进行摄像头设置,实现图像捕获和处理,以及如何构建人脸识别、目标检测等应用。 七、物联网(IoT)集成 作为一款...
在"nano track"的情况下,这个框架可能包括了处理传感器数据、解析定位信息、处理网络通信等功能模块。选择合适的框架可以提高开发效率,同时保证代码的可维护性和扩展性。 **可能的文件内容** 尽管没有提供具体的...
目录树莓派学习笔记 (二) 修改数据源 树莓派学习笔记 (二) 修改数据源 一般树莓派默认的源都是国外的,下载东西会非常的慢,所以我们需要修改数据源为国内的数据源 备份源文件,输入 sudo cp /etc/apt/sources....
### Arduino Nano Uno 参考手册知识点详述 #### 一、引言 Arduino Nano Uno 是一款基于 ATmega328P 微控制器的开源电子原型平台。它体积小巧且功能强大,非常适合各种嵌入式项目。该参考手册旨在为用户提供有关如何...
在实际开发中,`nanoserver-master`压缩包可能包含源代码、配置文件、示例和文档等资源,你可以根据这些资料进一步学习和理解如何将nanoserver应用到四川麻将游戏服务器的开发中。同时,不断优化和调整服务器架构,...
4. **API接口**:FINS-Framework通常会提供一组API接口,如`fins_open()`用于建立连接,`fins_write()`用于写入数据,`fins_read()`用于读取数据,以及`fins_close()`用于关闭连接。理解并熟练使用这些接口是实现...
如果外部IC电源关闭,与之相连的引脚均应切换为GPIO功能并输出0。 10. **检查漏电电路**:仔细检查电路板上所有接地部分,确保没有形成电源到地的通路。若必须形成通路,尽量增加电阻以减小漏电。 #### 四、NANO...
GNU Nano的特色在于其简洁的界面和易于上手的操作,它支持自动完成、拼写检查、多窗口编辑、搜索替换等功能。尽管不如Vim或Emacs那样高度可配置,但对初学者或需要快速编辑文本的用户来说,Nano是一个很好的选择。...
该项目涉及了从数据集准备到在Jetson Nano上部署...以上是针对项目描述的关键知识点的详细解析,涵盖了数据处理、深度学习、嵌入式硬件和软件设计等多个方面。这些技术在物联网、智能设备和自动化领域有着广泛应用。
Jetson Nano是一款由NVIDIA推出的高性能嵌入式计算平台,主要应用于人工智能、机器学习和深度学习等领域的开发。为了在Jetson Nano上进行工作,你需要一个预装了适当操作系统的SD卡镜像。本篇文章将详细讲解如何下载...