gpt4 book ai didi

java - Spring Boot 和多个数据库

转载 作者:行者123 更新时间:2023-12-01 10:51:40 25 4
gpt4 key购买 nike

我已经设置了一个带有单个数据库连接的基本 Spring 项目。

在 application.properties 文件中,我有数据库设置:

spring.datasource.url = jdbc:mysql://192.168.1.19/ticket
spring.datasource.username = dbusername
spring.datasource.password = dbpassword

我创建了一个其他 DAO 扩展的 DAO 基类:

@Transactional
public class Dao<E> {

@PersistenceContext
private EntityManager entityManager;

private Class<E> entityClass;

public Dao(Class<E> entityClass) {
this.entityClass = entityClass;
}

public void create(E object) {
entityManager.persist(object);

return;
}

public void delete(E object) {
if (entityManager.contains(object)) {
entityManager.remove(object);
} else {
entityManager.remove(entityManager.merge(object));
}

return;
}

@SuppressWarnings("unchecked")
public List<E> getAll() {
return entityManager.createQuery("from " + entityClass.getName()).getResultList();
}

public E get(long id) {
return entityManager.find(entityClass, id);
}

public void update(E object) {
entityManager.merge(object);
return;
}
}

这是一个扩展基本 DAO 的示例实体:

@Repository
public class PersonDao extends Dao<Person> {

public PersonDao() {
super(Person.class);
}
}

目前,它使用单个数据库,但我需要能够添加第二个数据库,并以某种方式在每个 DAO 中定义要使用的数据源。每个 DAO 将仅使用一个数据库,因此 DAO 不需要能够连接到多个数据库。

我做了一些研究,这似乎表明我需要使用 JdbcTemplate?但我似乎找不到符合我需要的教程。另外,目前,entityManager 被注入(inject)到 DAO 中,但我看过的 JdbcTemplate 示例似乎没有使用entityManager,这有点令人困惑。

最佳答案

database.password1=<password1>
database.url1=jdbc\:mysql\://localhost\:3306/twodbone
database.username1=<username1>
database.password2=<password1>
database.url2=jdbc\:mysql\://localhost\:3306/twodbtwo
database.username2=<username2>
database.driverClassName=com.mysql.jdbc.Driver

通过这种方式,您可以添加多个数据库并配置 hibernate.cfg.xml 文件和 applicationContext.xml 文件..

关于java - Spring Boot 和多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33841533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com