连接数据库
1,获取数据源----配置用相应的数据源类生成数据源---大部分的数据源支持jdbc,所以可以包装成jdbc的数据源,然后连接(获取到了数据源就可以进行一切数据库操作)
2,根据数据源获取连接,从而可以连接数据库
SourceController
SourceUtils
getDataSource 这里拓展数据源
dataSource = getDataSource(jdbcUrl, username, password, database, version, isExt);
connection = dataSource.getConnection();
DataSource getDataSource(String jdbcUrl, String userename, String password, String database, String version, boolean isExt) throws SourceException {
if (jdbcUrl.toLowerCase().contains(DataTypeEnum.ELASTICSEARCH.getDesc().toLowerCase())) {
return ESDataSource.getDataSource(jdbcUrl, userename, password, jdbcDataSource);
} else {
return jdbcDataSource.getDataSource(jdbcUrl, userename, password, database, version, isExt);
}
}
connection.setAutoCommit(false);
pstmt = connection.prepareStatement(sql);
public synchronized void removeDatasource(String jdbcUrl, String username, String password, String version, boolean isExt) {
String key = SourceUtils.getKey(jdbcUrl, username, password, version, isExt);
if (dataSourceMap.containsKey(key)) {
DruidDataSource druidDataSource = dataSourceMap.get(key);
druidDataSource.close();
dataSourceMap.remove(key);
}
}
获取到了数据源就可以进行一切数据库操作
/**
* 判断表是否存在
*
* @param tableName
* @return
* @throws SourceException
*/
public boolean tableIsExist(String tableName) throws SourceException {
boolean result = false;
Connection connection = null;
try {
connection = sourceUtils.getConnection(this.jdbcUrl, this.username, this.password, this.database, this.dbVersion, this.isExt);
if (null != connection) {
ResultSet tables = connection.getMetaData().getTables(null, null, tableName, null);
if (null != tables && tables.next()) {
result = true;
} else {
result = false;
}
tables.close();
}
} catch (Exception e) {
throw new SourceException("Get connection meta data error, jdbcUrl=" + this.jdbcUrl);
} finally {
sourceUtils.releaseConnection(connection);
}
return result;
}
相关推荐
《DaVinCi 配置EcuM模块的技术手册》提供了关于EcuM模块的详尽指导,特别是针对基于RH850芯片的诊断模块配置。EcuM(Electronic Control Unit Manager)是AUTOSAR(AUTomotive Open System ARchitecture)架构中的...
1. davinci_emac.c - 这是一个C语言源代码文件,很可能包含了用于控制和操作Davinci EMAC的函数和驱动程序。开发者可以通过这些函数来初始化EMAC、发送和接收数据包、处理中断等。 2. csr.c - 这可能是“Control and...
2. **i2c-davinci.h**:这是头文件,定义了相关的数据结构、常量和函数原型。它为其他模块提供了与DAVINCI I2C驱动交互的接口,例如,用户空间的应用程序或内核的其他部分可以通过这个头文件调用驱动的函数。头文件...
本文将详细探讨DaVinci平台上的CPU频率调整机制,以及如何通过davinci-cpufreq.c源代码进行操作。 DaVinci是由德州仪器(TI)开发的一系列数字媒体处理器,广泛应用于高清视频、音频处理和图像处理等领域。这些...
TI DAVINCI EVM平台的ASoC驱动程序是针对嵌入式音频应用设计的关键组件,它使得开发者能够充分利用TI DAVINCI系列微处理器在音频处理方面的强大功能。DAVINCI EVM(Evaluation Module)是德州仪器(TI)推出的一种...
描述中的“davinci SPI Linux驱动程序,欢迎下载分享”提示我们,这个压缩包包含了一个用于Linux操作系统的、专门为达芬奇处理器设计的SPI驱动源代码。开发者或系统工程师可以使用这个驱动来与SPI接口的外围设备进行...
标题 "eeprom.rar_davinci" 暗示了这个压缩包内容与EEPROM(电可擦可编程只读存储器)在Davinci平台上的应用有关。Davinci是TI(德州仪器)公司推出的一系列基于达芬奇数字媒体处理器架构的SoC(系统级芯片),常...
`gpio-davinci.c` 是实现TI DaVinci GPIO驱动的核心源代码文件。在这个文件中,你会找到与GPIO相关的初始化函数、注册和注销GPIO端口的代码、设置GPIO引脚方向(输入或输出)、读取和写入GPIO值以及配置中断处理等...
1. **数据结构**: 定义了用于描述DAVINCI I2S设备状态的数据结构,如`struct davinci_i2s_dev`。 2. **函数原型**: 定义了驱动程序中使用的函数接口,例如初始化函数、中断处理函数、缓冲区管理函数等。 3. **常量...
2. **硬件接口**:熟悉DAVINCI处理器上的硬件接口,如DMA(Direct Memory Access)用于快速数据传输,以及VPIF(Video Port Interface)用于与外部摄像头或其他视频源交互。 3. **SDK和工具链**:学习使用TI提供的...
本文将深入探讨针对DaVinci平台的MDIO(Media Independent Interface)模块的驱动程序,以 davinci_mdio.c 为主要代码源,解析其工作原理和实现细节。 MDIO,全称为媒体独立接口,是用于控制以太网物理层(PHY)...
MCASP(Multi-Channel Audio Serial Port)是德州仪器(TI)在其DaVinci系列处理器中引入的一种高级音频串行接口,主要用于处理多种音频数据流。这个“davinci-mcasp.rar_mcasp”文件包显然包含了与MCASP相关的源...
【标题】"SEED-DaVinci_EVM_eeprom.rar_seed" 提供的是与SEED公司的DaVinci EVM(Evaluation Module,评估模块)相关的EEPROM(电可擦可编程只读存储器)源代码。这表明我们即将讨论的是一个嵌入式系统开发中的关键...
`davinci-mcasp.c`包含了McASP模块的初始化、配置、数据传输等功能的具体实现,而`davinci-mcasp.h`则定义了相关的结构体、枚举类型和函数声明,为用户提供了与McASP交互的接口。 开发人员在使用这些驱动时,需要...
在这个名为“davinci-i2s.rar_MCBSP_MCBSP I2S_SOC”的压缩包中,包含了与DAVINCI处理器中I2S(Inter-IC Sound)音频接口相关的源代码文件。I2S是一种常见的数字音频接口,用于在音频设备之间传输音频数据。 MCBSP...
4. **davinci-i2s.c和davinci-i2s.h**:这两个文件很可能是实现DAVINCI处理器I2S接口的驱动源代码和头文件。`davinci-i2s.c`包含具体的驱动实现,如初始化、配置、读写操作等,而`davinci-i2s.h`则定义了相关的函数...
本文将详细讲解如何配置Davinci Configurator中的DOIP设置,以实现有效的车辆诊断和数据传输。 首先,配置DOIP概要涉及到几个关键模块的添加和设置: 1. **添加DOIP模块**: - **DoIPChannel**:这是DOIP通道配置...
《DaVinci EVM与ARM DSP开发:理解GEL文件及其在硬件连接中的作用》 在嵌入式系统开发领域,尤其是针对数字信号处理(DSP)应用,DaVinci EVM(Embedded Vision Module)和ARM架构的融合为高效计算提供了强大平台。...