【发布时间】:2015-11-21 08:55:15
【问题描述】:
我已经设置了一个带有单个数据库连接的基本 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?但我似乎找不到符合我需要的教程。此外,在实体管理器被注入 DAO 的那一刻,但我看过的 JdbcTemplate 示例似乎没有使用实体管理器,这有点令人困惑。
【问题讨论】:
-
既然你是从 Spring 开始的,那就看看 Spring Data repositories;他们基本上会为你生成整个 DAO 类,并自动构建最简单的查询。
-
谢谢建议,我去看看
标签: java spring spring-boot