整合数据框架

news/2025/2/16 3:24:37/

一  springMVC整合mybatis

1.在配置文件中配置好数据源

xml头

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 自动扫描 --><context:component-scan base-package="com.datanew"><!--<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"></context:include-filter>--><!--<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"></context:include-filter>--><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><context:component-scan base-package="com.datanew_zg"><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan>

配置要读取的配置文件信息

<!-- 引入配置文件 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations" ><list><value>classpath:config.properties</value><value>classpath:datasource.properties</value><value>classpath:ureport.properties</value></list></property><property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>

这里是config.properties,datasource.properties,ureport.properties等

<bean id="dataSource_pjgl" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url.pjgl}"/><property name="username" value="${jdbc.username.pjgl}"/><property name="password" value="${jdbc.password.pjgl}"/><property name="initialSize" value="${jdbc.initialSize}"/><property name="maxActive" value="${jdbc.maxActive}"/><property name="minIdle" value="${jdbc.minIdle}"/><property name="maxWait" value="${jdbc.maxWait}"/><property name="testWhileIdle" value="true"/><property name="connectionInitSqls"><list><value>set names utf8mb4</value></list></property>
</bean>
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory_pjgl" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource_pjgl"/><property name="configLocation" value="classpath:mybatis-config.xml"/><!-- 自动扫描mapping.xml文件 --><property name="mapperLocations" value="classpath:com/datanew/dao/xml/*.xml"/>
</bean>
<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.datanew.dao"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_pjgl"/>
</bean>
<!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
<bean id="transactionManager_pjgl" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource_pjgl"/>
</bean>
<!-- 配置事务增强处理Bean,指定事务管理器 -->
<tx:advice id="transactionAdvice_pjgl" transaction-manager="transactionManager_pjgl"><!-- 配置详细事务处理语义 --><tx:attributes><tx:method name="insert*" rollback-for="java.lang.Exception"/><tx:method name="update*" rollback-for="java.lang.Exception"/><tx:method name="delete*" rollback-for="java.lang.Exception"/><tx:method name="save*" rollback-for="java.lang.Exception"/><tx:method name="process*" rollback-for="java.lang.Exception"/><tx:method name="disable*" rollback-for="java.lang.Exception"/><tx:method name="enable*" rollback-for="java.lang.Exception"/><tx:method name="merge*" rollback-for="java.lang.Exception"/><tx:method name="undo*" rollback-for="java.lang.Exception"/><tx:method name="recount*" rollback-for="java.lang.Exception"/><!-- 其他采用只读事务方式 --><tx:method name="*" read-only="true"/></tx:attributes>
</tx:advice>

读取数据源与设置要扫描的mapper.xml包与dao所在的包

二  springMVC整合hibnate

1.在配置文件中配置数据源(若配置在config.properties中不必再引入配置文件,用默认)

xml头

<?xml version="1.0" encoding="UTF-8"?>
<beans default-lazy-init="true" xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd" xmlns:p="http://www.springframework.org/schema/p">
<bean id="dataSource_fsgl" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${fsgl.jdbc.url}"/><property name="username" value="${fsgl.jdbc.username}"/><property name="password" value="${fsgl.jdbc.password}"/><!-- 初始化连接大小(默认0) --><property name="initialSize" value="${initialSize}" /><!-- 连接池最大数量(默认8) --><property name="maxActive" value="${maxActive}" /><!-- 最小连接池数量 --><property name="minIdle" value="${minIdle}" /><!-- 获取连接最大等待时间,单位毫秒 --><property name="maxWait" value="${maxWait}" /><!-- 是否缓存preparedStatement(MySql建议关闭) --><property name="poolPreparedStatements" value="false" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="60000" /><!-- 这里配置提交方式,默认自动提交 --><property name="defaultAutoCommit" value="false" /><!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 --><property name="filters" value="stat" />
</bean><!-- 配置hibernate的SessionFactory -->
<bean id="sessionFactory_fsgl"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><!-- 注入数据源 相关信息看源码 --><property name="dataSource" ref="dataSource_fsgl" /><!-- hibernate配置信息 --><property name="hibernateProperties"><props><prop key="hibernate.dialect">com.datanew.util.MySQLServerDialect</prop><prop key="hibernate.show_sql">${hibernate.show_sql}</prop><prop key="hibernate.format_sql">${hibernate.format_sql}</prop><!--<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>--><prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop><prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop><prop key="hibernate.jdbc.use_streams_for_binary">true</prop><prop key="hibernate.connection.release_mode">auto</prop><prop key="hibernate.autoReconnect">true</prop><!-- 开启二级缓存 ehcache --><!-- <prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop><prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop><prop key="hibernate.cache.region.factory_class">${hibernate.cache.region.factory_class}</prop><prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.cache.provider_configuration_file_resource_path}</prop> --></props></property><!-- 扫描hibernate注解配置的entity --><property name="packagesToScan" value="com.datanew.model_fsgl"/>
</bean><!-- 配置事务管理器 -->
<bean id="transactionManager_fsgl" class="org.springframework.orm.hibernate4.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory_fsgl" />
</bean><!-- 配置事务增强处理Bean,指定事务管理器 -->
<tx:advice id="transactionAdvice_fsgl" transaction-manager="transactionManager_fsgl"><!-- 配置详细事务处理语义 --><tx:attributes><tx:method name="set*" propagation="REQUIRED" rollback-for="java.lang.Exception"/><tx:method name="push*" propagation="REQUIRED" rollback-for="java.lang.Exception"/><tx:method name="sync*" propagation="REQUIRED" rollback-for="java.lang.Exception"/><tx:method name="voided*" propagation="REQUIRED" rollback-for="java.lang.Exception"/><tx:method name="send*" propagation="REQUIRED" rollback-for="java.lang.Exception"/><tx:method name="create*" propagation="REQUIRED" rollback-for="java.lang.Exception"/><tx:method name="get*" propagation="SUPPORTS" read-only="true"/><tx:method name="*" propagation="SUPPORTS" read-only="true"/></tx:attributes>
</tx:advice><!-- Spring aop事务管理 -->
<aop:config><!-- 配置切入点 --><aop:pointcut id="transactionPointcut" expression="(execution(* com.datanew.service.impl.*Impl.*(..)) || execution(* com.datanew.dao.BaseDao.*(..)))"/><!-- 指定在txAdvice切入点应用txAdvice事务增强处理 --><aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice_fsgl" />
</aop:config>

读取配置文件中的数据源信息,要扫描数据源对应实体类的包

2.配置一个baseDao,再配置一个当前数据源的dao实现baseDao

@Repository("fsBaseDao")
public class FsBaseDaoImpl implements BaseDao {@Resource(name = "sessionFactory_fsgl")private SessionFactory sessionFactory;public SessionFactory getSessionFactory() {return sessionFactory;}public void setSessionFactory(SessionFactory sessionFactory) {this.sessionFactory = sessionFactory;}@Overridepublic Session getSession() {return sessionFactory.getCurrentSession();}

}

baseDao里为增删改查等相应的方法

三 springBoot整合mybatis

mapperscan扫描加config类配置(不再使用xml配置)

@Configuration
@MapperScan(value = {"com.datanew.reimburse.mapperpjgl"
}, sqlSessionFactoryRef = "sessionFactory-pjgl")
public class PjDataSourceConfig {@Bean(name = "datasource-pjgl")@ConfigurationProperties(prefix = "spring.datasource.pjgl")public DataSource pjDataSource() {return DataSourceBuilder.create().build();}@Autowired@Bean(name = "sessionFactory-pjgl")public SqlSessionFactory sessionFactory(@Qualifier("datasource-pjgl") DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean();factoryBean.setDataSource(dataSource);factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapperxml/*.xml"));return factoryBean.getObject();}@Autowired@Bean("sessionTemplate-pjgl")public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sessionFactory-pjgl") SqlSessionFactory sqlSessionFactory) throws Exception {return new SqlSessionTemplate(sqlSessionFactory);}@Autowired@Bean(name = "transactionManager-pj")public PlatformTransactionManager transactionManager(@Qualifier("datasource-pjgl") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}

http://www.ppmy.cn/news/67823.html

相关文章

数字化技术正在重构企业的商业模式

数字化技术的普及已经深刻地改变了企业经营的方式。随着技术的发展&#xff0c;企业开始采用数字化技术来优化其商业模式&#xff0c;以适应变化的市场和消费者需求。在这篇文章中&#xff0c;我们将探讨数字化技术对企业商业模式的影响&#xff0c;以及企业如何适应这些变化。…

第七章结构性模式—适配器模式

文章目录 适配器模式解决的问题概念结构 类适配器模式对象适配器模式接口适配器模式应用场景JDK 源码 - Reader 与 InputStream 结构型模式描述如何将类或对象按某种布局组成更大的结构&#xff0c;有以下两种&#xff1a; 类结构型模式&#xff1a;采用继承机制来组织接口和类…

MySQL 数据库面试题

TOC 1. MySQL 的内连接、左连接、右连接有有什么区别&#xff1f; inner join 内连接&#xff0c;在两张表进行连接查询时&#xff0c;只保留两张表中完全匹配的结果集。 left join 在两张表进行连接查询时&#xff0c;会返回左表所有的行&#xff0c;即使在右表中没有匹配的记…

在 PHP 7 中不要做的 10 件事

1. 不要使用 mysql_ 函数 这一天终于来了&#xff0c;从此你不仅仅“不应该”使用mysql_函数。PHP 7 已经把它们从核心中全部移除了&#xff0c;也就是说你需要迁移到好得多的mysqli_函数&#xff0c;或者更灵活的 PDO 实现。 2. 不要编写垃圾代码 这一条可能易于理解&#…

BM64-最小花费爬楼梯

题目 给定一个整数数组 cost&#xff0c;其中 cost[i] 是从楼梯第i个台阶向上爬需要支付的费用&#xff0c;下标从0开始。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的…

探索iOS之AVFoundation框架

AVFoundation框架的业务层主要是AVKit和UIKit&#xff0c;内核层包括CoreVideo、CoreAudio、CoreMedia、VideoToolBox等。AVFoundation作为iOS的音视频框架&#xff0c;提供音视频播放、录制、编辑、编解码、音效设置等。接下来&#xff0c;让我们看一下整体的框架图。 一、AVK…

最新入河排污口设置论证、水质影响预测与模拟、污水处理工艺分析及典型建设项目入河排污口方案报告书实例分析

随着水资源开发利用量不断增大&#xff0c;全国废污水排放量与日俱增&#xff0c;部分河段已远远超出水域纳污能力。近年来,部分沿岸入河排污口设置不合理&#xff0c;超标排污、未经同意私设排污口等问题逐步显现&#xff0c;已威胁到供水安全、水环境安全和水生态安全&#x…

C++基础之默认成员函数(构造函数,析构函数)

目录 空类中都有什么 默认成员函数 构造函数 简介 特性 注意 总结 析构函数 简介 特性 注意 总结 空类中都有什么 先看下面一段代码&#xff1a; class Date {};int main() {Date d1;std::cout << sizeof(Date) << std::endl;std::cout << sizeof(d1) <…