赞
踩
为什么要配置双数据库或者多数据库。
当你需要从两个或多个数据库进行获取数据库表的数据或者插入数据,每个数据库的数据库驱动(driver),url路径,用户名(username)、密码(password)都不一样,如果按照单数据库的配置你只能获取一个数据库的内容。
按照我的这个方法,是纯java类的项目(有涉及到maven)的情况下进行配置的
<!-- 创建数据库xml配置文件需要的包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <!-- 根据数据库类型进行导对应的驱动包,该包为hana数据库的--> <dependency> <groupId>com.sap.cloud.db.jdbc</groupId> <artifactId>ngdbc</artifactId> <version>2.7.15</version> </dependency> <!-- 该包为mysql数据库的--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency>
如遇到标红的地方,百度搜索对应的变红的代码寻找依赖导入即可,这里只给出
最主要的依赖,并不代表这些就一定够用
以我的项目进行说明:
api: 进行功能实现
mapper: 写数据库实现方法
model: 实体类
utils: 工具类
resource: 进行资源配置,最主要的配置双数据库就是在这里进行,如果想配置多个数据库依次往上增加即可

以我的为例:
在resource文件夹里创建一个mapper文件夹
在mapper文件夹里创建两个数据库增删改查的mapper文件。
在resource下创建两个数据库配置文件
结构如下:
–resource
-----mapper
---------------mapper_hana.xml
---------------mapper_sql.xml
–mapper-config-hana.xml
–mapper-config-sql.xml
其中。mapper_hana.xml和mapper_sql.xml文件代码如下:
mapper_hana.xml代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.db1.AssistantMapper_hana">
<!-- 查找发送人员-->
<select id="findSendUser" resultType="com.model.AssistantEngineer">
</select>
</mapper>
其中,namespace为映射的数据库增删改查实现路径,
<select id="" resultType=""></select>
<select></select>代表数据库的查询
id为标识的查找的对应的内容
resultType为映射的实体类
更具体的说明,请去学习springboot相关知识
mapper_sql.xml代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.db2.AssistantMapper_sql">
<!-- 查找发送人员-->
<select id="findSendUser" resultType="com.model.AssistantEngineer">
</select>
</mapper>
其中,namespace为映射的数据库增删改查实现路径,
<select id="" resultType=""></select>
<select></select>代表数据库的查询
id为标识的查找的对应的内容
resultType为映射的实体类
更具体的说明,请去学习springboot相关知识
mapper-config-hana.xml代码如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <package name="com.model"/> </typeAliases> <environments default="development"> <environment id="hr"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.sap.db.jdbc.Driver"/> <property name="url" value="url值"/> <property name="username" value="用户名"/> <property name="password" value="密码"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mapper/AssistantMapper_hana.xml"/> </mappers> </configuration>
其中,<TypeAliases>为映射的实体类
<dataSource>为配置的数据库
<mapper resource/>为映射的数据库增删改查文件
mapper-config-sql.xml代码如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <package name="com.model"/> </typeAliases> <environments default="development"> <environment id="mes"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="url值"/> <property name="username" value="用户名"/> <property name="password" value="密码"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mapper/AssistantMapper_sql.xml"/> </mappers> </configuration>
其中,<TypeAliases>为映射的实体类
<dataSource>为配置的数据库
<mapper resource/>为映射的数据库增删改查文件
我的项目里以model文件夹作为存放实体类的路径
结构如下:

其中。里面的AssistantEngineer.java内容为对应数据库字段的实体。
代码例子如下:
@Data
public class AssistantEngineer {
private String name;
private int age;
}
其中,@Data注解需要导入lombok,这里主要讲解如何进行配置双数据库,所以进行省略
以mapper作为实现,我的项目结构如下(只要映射的路径对应,无论怎么创建皆可)

其中,AssistantMapper_hana代码如下:
public interface AssistantMapper_hana {
// 根据查询为多个进行使用List<>
// 否则可 AssistantEngineer findSendUser();
List<AssistantEngineer> findSendUser();
}
以上为配置多数据库的具体方式,欢迎借鉴
同时我也写了一个poi获取数据库表数据写入到excel的功能代码,
在里面有具体的双数据库实现
链接: poi获取数据库表数据写入到excel.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。