springmvc jpa 多数据源

news/2024/11/17 2:26:29/

本次使用Mysql 和 sqlServer

一 POM

版本大家自己换一下

<!--  JPA  --><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-commons</artifactId><version>1.13.13.RELEASE</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jpa</artifactId><version>1.13.13.RELEASE</version></dependency>
<!--  JPA  -->

二 application.xml

我将jdbc和jpa单独放在了另一个spring-business.xml中

1 applicationContext.xml

引用了spring-business.xml

    <import resource="spring-business.xml"/>

2 spring-business.xml

    <!--mysql 配置数据源--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"><property name="driverClass" value="com.mysql.jdbc.Driver" />  <property name="jdbcUrl" value="jdbc:mysql://192.168.1.1:3306/test1" />     <property name="user" value="root" />   <property name="password" value="root" />   <property name="maxPoolSize" value="20" />      <property name="minPoolSize" value="3" />       <property name="initialPoolSize" value="3" />      <property name="maxIdleTime" value="20" />  </bean><!--  hibernate  --><!--配置session工厂--><bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="packagesToScan" value="com.test1.model" /><property name="hibernateProperties"><props><prop key="hibernate.hbm2ddl.auto">none</prop> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>   <prop key="hibernate.show_sql">false</prop>     <prop key="hibernate.format_sql">true</prop>     <prop key="hibernate.cache.use_second_level_cache">false</prop><prop key="hibernate.cache.use_query_cache">false</prop>  <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</prop><prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop></props></property></bean><!--  JPA mysql  --><bean id="entityManagerFactory" name="jpaEntityManagerFactory"class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"><property name="dataSource" ref="dataSource" /><property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" /><!-- mysql的实体类包 --><property name="packagesToScan" value="com.test1.model" /><property name="jpaProperties"><props><prop key="hibernate.current_session_context_class">thread</prop><prop key="hibernate.hbm2ddl.auto">none</prop><!-- validate/update/create --><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop><prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop></props></property></bean><!-- 设置JPA实现厂商的特定属性 --><bean id="hibernateJpaVendorAdapter"class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"><!-- 注意:MySQLDialect --><property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect"/></bean><!-- Jpa 事务配置 --><bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"><property name="entityManagerFactory" ref="entityManagerFactory"/></bean><!-- Spring Data Jpa配置 --><jpa:repositories base-package="com.test1.dao"  <!-- mysql dao包 -->transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory"/><!-- 使用annotation定义事务 --><tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
<!--  JPA mysql  --><!-- JPA sqlserver --><bean id="sqlserverDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"><property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /><property name="jdbcUrl" value="jdbc:sqlserver://192.168.1.1;DatabaseName=test2" /> <property name="user" value="root" />   <property name="password" value="root" />   <property name="maxPoolSize" value="20" />      <property name="minPoolSize" value="3" />       <property name="initialPoolSize" value="3" />      <property name="maxIdleTime" value="20" /> </bean><!-- 整合sqlserverjpa --><bean id="sqlserverEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"><property name="dataSource" ref="sqlserverDataSource"></property><!-- sqlserver model包 --><property name="packagesToScan" value="com.test2.model"></property><property name="persistenceUnitName" value="sqlserverdb"></property><property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter2" /><property name="jpaProperties"><props><prop key="hibernate.max_fetch_depth">3</prop><prop key="hibernate.jdbc.fetch_size">18</prop><prop key="hibernate.jdbc.batch_size">10</prop><!-- <prop key="hibernate.hbm2ddl.auto">validate</prop> --><prop key="hibernate.show_sql">false</prop><prop key="hibernate.format_sql">false</prop><prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop><prop key="javax.persistence.validation.mode">none</prop></props></property></bean><!-- 设置JPA实现厂商的特定属性 --><bean id="hibernateJpaVendorAdapter2"class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"><!-- 注意:SQLServerDialect--><property name="databasePlatform" value="org.hibernate.dialect.SQLServerDialect"/></bean><bean id="sqlservertransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"><property name="entityManagerFactory" ref="sqlserverEntityManagerFactory" /><qualifier value="sqlserverEM"/></bean><jpa:repositories <!-- sqlserver dao包 -->base-package="com.test2.dao"  transaction-manager-ref="sqlservertransactionManager" entity-manager-factory-ref="sqlserverEntityManagerFactory"/><tx:annotation-driven transaction-manager="sqlservertransactionManager" proxy-target-class="false"/>
<!-- JPA sqlserver --></beans>

如果运行报错:The server selected protocol version TLS10 is not accepted by client preferences

找到jdk下的java.security(idea的在config下,jdk的在jdk目录中的jre/lib/security下)文件,然后搜索jdk.tls.disabledAlgorithms

改为:jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

三 对应的Repository和model创建完

(根据上面配置,创建在指定的dao和model包中!)

直接就可以调用了


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

相关文章

美颜SDK的性能测试和优化方案

美颜SDK作为美颜相机、短视频等应用的核心技术之一&#xff0c;对于提升用户体验和增加应用商业价值起到了至关重要的作用。然而&#xff0c;如何对美颜SDK进行性能测试和优化&#xff0c;成为了广大应用开发者们所面临的一大难题。很多开发者也曾经向小编提起过应该如何着手优…

干货:行政与人事管理的区别在哪里?

行政管理和人事管理是现代组织管理中非常重要的两个部分&#xff0c;两者共同构成了组织运作的基本框架。本文将对行政管理和人事管理进行解析&#xff0c;并探讨其在组织中扮演的角色以及如何有效地进行管理。 一、行政管理 行政管理是指对组织的资源进行规划、组织、领导、…

C语言从入门到精通第12天(函数的定义)

函数的定义 函数的概念函数的定义函数的参数函数的返回值 函数的概念 在程序设计中&#xff0c;为了实现某个功能需要编写多行代码&#xff0c;我们每次在使用时都将原来的代码重复编码&#xff0c;这样就非常的麻烦&#xff0c;而且编程的效率也不高。为了解决这一问题&#…

【Linux命令行与Shell脚本编程】第十一章 构建基础脚本

Linux命令行与Shell脚本编程 第十一章 构建基础脚本 文章目录 Linux命令行与Shell脚本编程一,构建基础脚本1,使用多个命令 ;2,创建shell脚本文件2.1,格式2.2,运行 3,显示消息 echo4,使用变量4.1,环境变量 $4.2,用户自定义变量4.3,命令替换 $() 5,重定向输入和输出5.1,输出重定…

学成在线笔记+踩坑(8)——课程预览、提交审核,Freemarker模板引擎

导航&#xff1a; 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线牛客面试题_java黑马笔记 目录 1 模块需求分析 1.1 模块介绍 1.2 业务流程 1.2.1 课程预览 1.2.2 课程审核 1.2.3 课程发布 2 课程预览 2.1 需求分析…

深度学习笔记之稀疏自编码器

深度学习笔记之稀疏自编码器 引言引子&#xff1a;题目描述正确答案&#xff1a; A B C D \mathcal A \mathcal B \mathcal C \mathcal D ABCD题目解析 介绍&#xff1a;自编码器欠完备自编码器正则自编码器从先验角度解释稀疏自编码器稀疏自编码器的构建 引言 本节以一道算法…

MetaERP系统主要干什么的,华为自研ERP的路子是否可以效仿?

近日&#xff0c;华为成功研发出自主可控的MetaERP系统&#xff0c;并完成了对旧有ERP系统的替换。该系统采用全栈自主可控技术&#xff0c;基于华为欧拉操作系统、GaussDB等根技术&#xff0c;采用云原生架构、元数据多租架构、实时智能技术等&#xff0c;提高业务效率&#x…

c++标准模板(STL)(std::array)(二)

定义于头文件 <array> template< class T, std::size_t N > struct array;(C11 起) std::array 是封装固定大小数组的容器。 此容器是一个聚合类型&#xff0c;其语义等同于保有一个 C 风格数组 T[N] 作为其唯一非静态数据成员的结构体。不同于 C 风格数…