springMVC使用Alibabadruid新增第二个数据源为oracle数据库在java代码中通过SessionFactory实现分页查询第二个数据源中表的数据
首先,在pom.xml文件中添加oracle驱动和druid依赖:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.18</version>
</dependency>
然后在Spring配置文件中配置第二个数据源:
<bean id="secondDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
</bean>
接着,配置SessionFactory和事务管理器:
<bean id="secondSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="secondDataSource"/>
<property name="packagesToScan">
<list>
<value>com.example.entity</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle12cDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<bean id="secondTransactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="secondSessionFactory"/>
</bean>
最后,在需要使用第二个数据源的地方注入SessionFactory,并使用Hibernate的Criteria实现分页查询:
@Autowired
@Qualifier("secondSessionFactory")
private SessionFactory secondSessionFactory;
@Transactional(transactionManager = "secondTransactionManager", readOnly = true)
public List<SecondEntity> getSecondEntities(int pageNumber, int pageSize) {
Session session = secondSessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(SecondEntity.class);
criteria.setFirstResult((pageNumber - 1) * pageSize);
criteria.setMaxResults(pageSize);
return criteria.list();
}
其中,SecondEntity为第二个数据源中的实体类
原文地址: https://www.cveoy.top/t/topic/eChs 著作权归作者所有。请勿转载和采集!