springMVC新增第二个数据源为oracle数据库在java代码中通过SessionFactory实现分页查询第二个数据源中表的数据
- 配置第二个数据源的数据源信息
在Spring MVC的配置文件中,需要配置第二个数据源的数据源信息。假设第二个数据源为Oracle数据库,配置信息如下:
<bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<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
在Spring MVC的配置文件中,需要新增一个SessionFactory,用于操作第二个数据源。配置信息如下:
<bean id="sessionFactory2" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource2"/>
<property name="packagesToScan" value="com.example.entity"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
- 编写DAO层
在DAO层中,需要注入第二个SessionFactory,并实现分页查询。假设要查询的表名为"table2",查询语句如下:
public List<Table2> findByPage(int pageNo, int pageSize) {
Session session = sessionFactory2.getCurrentSession();
Query query = session.createQuery("from Table2");
query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
return query.list();
}
- 编写Controller层
在Controller层中,需要注入DAO,并调用DAO的方法查询数据。假设查询第1页,每页10条数据,代码如下:
@Autowired
private Table2DAO table2DAO;
@RequestMapping("/list2")
public ModelAndView list2(@RequestParam(defaultValue = "1") int pageNo) {
int pageSize = 10;
List<Table2> list = table2DAO.findByPage(pageNo, pageSize);
ModelAndView mav = new ModelAndView("list2");
mav.addObject("list", list);
mav.addObject("pageNo", pageNo);
mav.addObject("pageSize", pageSize);
return mav;
}
其中,list2为返回的视图名称,可以在视图文件中展示查询到的数据
原文地址: https://www.cveoy.top/t/topic/eCha 著作权归作者所有。请勿转载和采集!