精华内容
下载资源
问答
  • spring动态创建,加载,使用数据源

    万次阅读 热门讨论 2013-12-27 16:44:43
    项目中我们经常会遇到多数据源的问题,尤其是数据同步或定时任务等项目更是如此。多数据源让人最头痛的,不是配置多个数据源,而是如何能灵活动态的切换数据源。例如在一个spring和hibernate的框架的项目中,我们在...

    项目中我们经常会遇到多数据源的问题,尤其是数据同步或定时任务等项目更是如此。多数据源让人最头痛的,不是配置多个数据源,而是如何能灵活动态的切换数据源。例如在一个spring和hibernate的框架的项目中,我们在spring配置中往往是配置一个dataSource来连接数据库,然后绑定给sessionFactory,在dao层代码中再指定sessionFactory来进行数据库操作。

    正如上图所示,每一块都是指定绑死的,如果是多个数据源,也只能是下图中那种方式。

    可看出在Dao层代码中写死了两个SessionFactory,这样日后如果再多一个数据源,还要改代码添加一个SessionFactory,显然这并不符合开闭原则。

    那么正确的做法应该是

    先说一下我的思路:

    首先做一个创建数据源配置文件的类,专门用于创建数据源xml配置,叫ConfigFileCreator.java 

    其次,编写一个动态加载刚才创建的配置文件的类,叫 DynamicLoadBean.java。至此,创建的数据源到内存中已经完成。

    第三,重点编写这个DynamicDataSource.java,该类主要是用来实现动态切换数据源,并通知容器。在这一块我选择了修改,AbstractRoutingDataSource.java,编写一个支持添加数据源对象的方法public void addDataSource(Object key,Object dataSource)

    第四,写例子来测试

    实现过程如下:

    1.bean.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:tx="http://www.springframework.org/schema/tx"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    				http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
    	<!-- 自动扫描与装配bean -->
    	<context:component-scan base-package="qilin"></context:component-scan>
    	<!-- 使用外部的配置文件 -->
    	<context:property-placeholder location="classpath:jdbc.properties" />
    	<bean id="defaultDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    				<!-- 数据库连接信息 -->
    				<property name="jdbcUrl" value="${jdbcUrl}"></property>
    				<property name="driverClass" value="${driverClass}"></property>
    				<property name="user" value="${username}"></property>
    				<property name="password" value="${password}"></property>
    	</bean>
    	
    	<bean id="dataSourceA" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    				<!-- 数据库连接信息 -->
    				<property name="jdbcUrl" value="jdbc:mysql:///dynamictest"></property>
    				<property name="driverClass" value="${driverClass}"></property>
    				<property name="user" value="${username}"></property>
    				<property name="password" value="${password}"></property>
    	</bean>
    	<bean id="dynamicdatasource" class="qilin.utils.DynamicDataSource">
    		<property name="targetDataSources">
    			<map key-type="java.lang.String">
    				 <entry key="defaultDataSource" value-ref="defaultDataSource" /> 
    				 <entry key="dataSourceA" value-ref="dataSourceA" /> 
    			</map>
    		</property>
    		<property name="defaultTargetDataSource" ref="defaultDataSource" />
    	</bean>
    
    	<!-- 配置SessionFactory -->
    	<bean id="sessionFactory"
    		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    		<property name="dataSource" ref="dynamicdatasource" />
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    				<prop key="hibernate.hbm2ddl.auto">none</prop>
    				<prop key="hibernate.show_sql">true</prop>
    				<prop key="hibernate.format_sql">false</prop>
    				<prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop>
    			</props>
    		</property>
    		<!-- 注解方式配置 -->
    		<property name="annotatedClasses">
    			<list>
    				<value>qilin.entity.Student</value>
    			</list>
    		</property>
    	</bean>
    
    
    	<!-- 配置声明式事务管理,采用基于注解的方式 -->
    	<bean id="transactionManager"
    		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="sessionFactory" ref="sessionFactory"></property>
    	</bean>
    	<tx:annotation-driven transaction-manager="transactionManager" />
    	<bean id="dynamicLoadBean" class="qilin.utils.DynamicLoadBean"></bean>
    </beans>
    
    2.AbstractRoutingDataSource.class 修改的部分

    /**@author qilin**/
    	public void addDataSource(Object key,Object dataSource){
    		
    		this.targetDataSources.put(key, dataSource);
    		
    		setTargetDataSources(this.targetDataSources);
    	}
    3.DynamicDataSource.class  这个类中有一个地方需要注意,当我们添加数据,切换了数据源,要通知当前spring容器,需要调用父类的super.afterPropertiesSet();方法

    package qilin.utils;
    
    import java.util.Map;
    
    import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
    import org.springframework.jdbc.datasource.lookup.DataSourceLookup;
    
    public class DynamicDataSource extends AbstractRoutingDataSource {
    
    	/* 
    	 * 该方法必须要重写  方法是为了根据数据库标示符取得当前的数据库
    	 */
    	@Override
    	public Object determineCurrentLookupKey() {
    		return DataSourceContextHolder.getDataSourceName();
    	}
    
    	@Override
    	public void setDataSourceLookup(DataSourceLookup dataSourceLookup) {
    		super.setDataSourceLookup(dataSourceLookup);
    	}
    
    	@Override
    	public void setDefaultTargetDataSource(Object defaultTargetDataSource) {
    		super.setDefaultTargetDataSource(defaultTargetDataSource);
    	}
    
    	@Override
    	public void setTargetDataSources(Map targetDataSources) {
    		super.setTargetDataSources(targetDataSources);
    		//重点
    		super.afterPropertiesSet();
    	}
    
    }
    4.动态加载数据源配置文件DynamicLoadBean.class

    package qilin.utils;
    
    import java.io.IOException;
    
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.config.BeanDefinition;
    import org.springframework.beans.factory.support.BeanDefinitionRegistry;
    import org.springframework.beans.factory.support.ChildBeanDefinition;
    import org.springframework.beans.factory.support.DefaultListableBeanFactory;
    import org.springframework.beans.factory.xml.ResourceEntityResolver;
    import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.context.ConfigurableApplicationContext;
    
    /**
     * 动�?�加载数据源
     * @author qilin
     *
     */
    public class DynamicLoadBean implements ApplicationContextAware {
    
    	private ConfigurableApplicationContext applicationContext = null;
    	public void setApplicationContext(ApplicationContext applicationContext)
    			throws BeansException {
    
    			this.applicationContext = (ConfigurableApplicationContext) applicationContext;
    	}
    
    	public ConfigurableApplicationContext getApplicationContext() {  
            return applicationContext;  
        }
    	
    	/**
    	 * 1.配置文件的位置固�?
    	 * 2.配置文件中bean的名字已�?
    	 * @param configLocationString
    	 */
    	 public void loadBean(String fileName)
    	    {  
    	        XmlBeanDefinitionReader beanDefinitionReader = new XmlBeanDefinitionReader((BeanDefinitionRegistry)getApplicationContext().getBeanFactory());  
    	        beanDefinitionReader.setResourceLoader(getApplicationContext());  
    	        beanDefinitionReader.setEntityResolver(new ResourceEntityResolver(getApplicationContext()));  
    	        try
    	        {  
    	        	beanDefinitionReader.loadBeanDefinitions(getApplicationContext().getResources(fileName));  
    	        } catch (BeansException e) {  
    	            e.printStackTrace();  
    	        } catch (IOException e) {  
    	            e.printStackTrace();  
    	        }  
    	    }  
    
    	 public void registBean(String beanName, String parentName) {
    		 DefaultListableBeanFactory  fcy = (DefaultListableBeanFactory)applicationContext.getAutowireCapableBeanFactory();
    		 BeanDefinition beanDefinition  = new ChildBeanDefinition(parentName);
    		 fcy.registerBeanDefinition(beanName, beanDefinition);
    	 }
    }
    
    5.DataSourceContextHolder.class

    package qilin.utils;
    
    
    public class DataSourceContextHolder {
    
    	private static final ThreadLocal contextHolder=new ThreadLocal();
    	
    	public static void setDataSourceType(String dataSourceName){
    		contextHolder.set(dataSourceName);
    	}
    	
    	public static String getDataSourceName(){
    		return (String) contextHolder.get();
    	}
    	
    	public static void clearDataSourceType(){
    		contextHolder.remove();
    	}
    	
    }
    

    5.测试代码

    package junit;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    import qilin.entity.Student;
    import qilin.service.StuService;
    import qilin.utils.DataSourceContextHolder;
    import qilin.utils.DynamicDataSource;
    import qilin.utils.DynamicLoadBean;
    
    public class Test {
    	public static void main(String[] args) {
    		ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
    		
    		StuService stuService = (StuService) ac.getBean("stuServiceImpl");
    		
    		Student stu = new Student();
    		
    		stu.setStuName("qilin");
    		
    		stuService.save(stu);
    		
    		DataSourceContextHolder.setDataSourceType("dataSourceA");
    		
    		
    		Student _stu = new Student();
    		
    		_stu.setStuName("_qilin1");
    		
    		stuService.save(_stu);
    		
    		//创建一个数据源
    		DynamicLoadBean dynamicBeanLoad =(DynamicLoadBean)ac.getBean("dynamicLoadBean");   
            dynamicBeanLoad.loadBean("classpath:mos/qqq.xml"); 
            ComboPooledDataSource dataSource = (ComboPooledDataSource) ac.getBean("qqq");
            System.err.println(dataSource.getDriverClass());
            
            
            
            DynamicDataSource dynamicDataSource = (DynamicDataSource) ac.getBean("dynamicdatasource");
           
    //        Map<String, ComboPooledDataSource> targetDataSources = new HashMap<String, ComboPooledDataSource>();
            
    //        targetDataSources.put("qqq", dataSource);
            
    //        Map<Object, Object> targetDataSources = dynamicDataSource.getTargetDataSources();
            
    //        targetDataSources.put("qqq", dataSource);
            
    //        dynamicDataSource.setTargetDataSources(targetDataSources);
            
    //        dynamicDataSource.setDefaultTargetDataSource(dataSource);
            
            dynamicDataSource.addDataSource("qqq", dataSource);
            
            DataSourceContextHolder.setDataSourceType("qqq");
    		
            Student __stu = new Student();
    		
    		__stu.setStuName("qilin2");
    		
    		stuService.save(__stu);
    		
    	}
    }
    


    切换数据源就一句话搞定  DataSourceContextHolder.setDataSourceType("qqq");

    下载链接http://download.csdn.net/detail/qi_lin70/6778247



    有什么不妥之处,还望指教。共同学习,共同进步!







    展开全文
  • 如何创建 SQL Server 数据源

    万次阅读 2017-05-03 20:49:36
    软件环境 ...使用 SuperMap Deskpro .NET 6R (2012)创建数据库型数据源,数据库类型为 SQLServer 2005。 实现思路 连接到 SQL Server 2005 数据库,新建一个数据库登录名,再打开 SuperMap Deskpro

    软件环境
    数据库:SQL Server 2005
    桌面产品:SuperMap Deskpro .NET 6R (2012)
    实现内容
    使用 SuperMap Deskpro .NET 6R (2012)创建数据库型数据源,数据库类型为 SQLServer 2005。
    实现思路
    连接到 SQL Server 2005 数据库,新建一个数据库登录名,再打开 SuperMap Deskpro .NET 6R (2012),用这个新建的数据库登录名,创建一个 SQL Server 数
    据库,也就是 SQL Server 数据源。
    实现步骤
    新建数据库的登录名( 图一 ),设置服务器角色为 dbcreator( 有关服务器角色的概念,请参见附录一 )( 图二 )。不需要设置用户映射,当在 Deskpro .NET 中创建了 SQL Server 数据源后会自动将新创建的数据库映射到新建的这个登录名中。
    这里写图片描述
    这里写图片描述

    1. 打开Deskpro .NET 6R (2012),新建SQL Server数据源,在弹出的新建SQL Server Plus 数据源对话框中,输入数据库服务器名称,或 IP\实例名,数据库名称为用户自定义的名称,例中为 supermap,用户名称和用户密码为在 SQL Server中新建的登录名及其相应的密码(图三 ),点击新建,即可新建成功(图四 )。
      这里写图片描述
      这里写图片描述
    2. 可以再回到 SQL Server 2005 中验证一下是否生成了相应的数据库,刷新数据库,会看到生成了一个名为 supermap 的数据库,再查看之前新建的登录名,会看到默认映射到 supermap 数据库中,并设置了数据库角色身份为db_owner( 执行所有数据库角色活动 )和 public( 维护所有默认权限 )。
      这里写图片描述
      附录一:
    1. 服务器角色:服务器角色限制在发布 SQL Server 时就已经建立于其中的角色,并且,它在这里主要是为了进行系统的维护以及授予完成非数据库特有的事情的能力,如登录账户和创建连接服务器。
      SQL Server 服务器角色是指根据 SQL Server 的管理任务,以及这些任务相对的重要性等级来把具有 SQL Server 管理职能的用户划分为不同的用户组,每一组所具有的管理 SQL Server 的权限都是系统内置的,即不能对其进行添加、修改和删除,只能向其中加入用户或者其他角色。
      SQL Server 服务器角色存在于各个数据库之中,要想加入用户,该用户必须有登录账号以便加入到角色中。SQL Server 提供了七种常用的固定 SQL Server 服务器角色,其具体含义如下:
       系统管理员(sysadmin):拥有 SQL Server 所有的权限许可;
       服务器管理员(serveradmin):管理 SQL Server 服务器端的设置;
       磁盘管理员(diskadmin):管理磁盘文件;
       进程管理员(processadmin):管理 SQL Server 系统进程;
       安全管理员(securityadmin):管理和审核 SQL Server 系统登录;
       安装管理员(setupadmin):增加、删除连接服务器,建立数据库复制以及管理扩展存储过程;
       数据库创建者(dbcreator):创建数据库,并对数据库进行修改。
       Bulkadmin:用于执行 bulk insert 语句的权限,否则的话,只能由具有 sysadmin权限的人来执行 bulk insert 语句。
    2. 数据库角色。数据库角色限制在单个数据库的范围之----用户属于一个数据库中的db_datareader 角色并不意味着他属于另一个数据库中的那个角色。数据库的角色分为两个子类:固定数据库角色和用户自定义数据库角色。这里主要为大家介绍固定数据库角色。固定数据库角色有预先定义好的专门的用途,这是不能使用常规的语句复制出来的。包括以下的内容:
       db_owner :执行数据库中的所有维护和配置活动。
       db_accessadmin :添加或删除 windows 用户、组和 SQL Server 登录的访问权限。
       db_datareader :读取所有用户表中的所有数据。
       db_datawriter: 添加、删除或更改所有用户表中的数据。
       db_ddladmin :在数据库中运行任何数据定义语言 (ddl) 命令。
       db_securityadmin :修改角色成员身份并管理权限。
       db_backupoperator :备份数据库。
       db_denydatareader :无法读取数据库用户表中的任何数据。
       db_denydatawriter :无法添加、修改或删除任何用户表或视图中的数据。
    展开全文
  • 【PB】创建数据窗口时数据源使用方式

    千次阅读 热门讨论 2017-06-26 22:01:34
    PB提供5种数据源:Quick Select(快速选择类型)、SQL Select(SQL选择类型)、Query(查询类型)、External(外部类型)和Stored Procedure(存储过程类型)。

            上一篇中有讲到数据源的使用方式有多种,这里来简单介绍下。首先,给大家看一张图:


            PB提供5种数据源:Quick Select(快速选择类型)、SQL Select(SQL选择类型)、Query(查询类型)、External(外部类型)和Stored Procedure(存储过程类型)

    Quick Select

           快速选择类型,只能从一个数据表或者视图中选取数据(无关联的表或者视图)


    SQL Select

           SQL选择类型,可以实现多表查询

    选择表



    选择字段

           选择需要查询的数据字段


    指定检索条件

           还可以根据条件进行查询等等


    Query

           查询类型,PB可以将特定的SQL语句保存为Query对象,不同的Query数据源的数据窗口都可以使用这些已经保存好的SQL语句来提取数据


    External

           外部类型,添加外部数据源,当和不存在于数据库中的数据打交道或者要利用数据窗口的某些特性但不进行数据处理时,使用此数据源。无SQL语句。


    Stored Procedure

            存储过程类型,使用已经定义好的存储过程来做数据源。



           使用PB软件开发程序的小伙伴们一定要好好了解这五种数据源方式哦!

    展开全文
  • SuperMap iDesktop 达梦数据库型的数据源创建作者:12058 本文主要介绍如何如何创建达梦数据库型的数据源,目前我们的iDesktop产品支持达梦数据库的版本为7.1.4和7.1.5,我们就以64位的达梦数据库7.1.5版本和64位的...

    作者:12058

    本文主要介绍如何如何创建达梦数据库型的数据源,目前我们的iDesktop产品支持达梦数据库的版本为7.1.4和7.1.5,我们就以64位的达梦数据库7.1.5版本和64位的iDesktop7.1.2版本为示例。

    1. 安装数据库:达梦数据库的安装过程很简单,按安装向导流程化的安装即可。如图一至图三。
      这里写图片描述
      这里写图片描述
      注:达梦数据库的服务器和客户端是在同一个安装程序里,如果只需要服务器的话,就不勾选客户端,如果只需要客户端的话,就不勾选服务器和数据库服务即可。
      这里写图片描述
      安装完成后就初始化数据库。

    2. 配置数据库:达梦数据库的实例化也比较简单,因为它的组织和 Oracle 数据库类似,它的参数配置、创建数据库等过程都和 Oracle 数据库类似,它的实例、表空间、用户、数据文件等概念都和 oracle 数据库的类似。如图四至图十二。
      这里写图片描述
      这里写图片描述
      这里写图片描述
      这里写图片描述
      注:安装到这一步,会提示防火墙阻止,勾选上所有网络,然后点击允许访问。
      这里写图片描述
      注:这里的字符集设置的是GB18030。如果使用过程中遇到数据表里有产生乱码现象,那基本都是字符集不一致导致的,这时请修改字符集类型。
      这里写图片描述
      注:设置用户名密码,这个需要记住。
      这里写图片描述
      这里写图片描述
      注:数据库创建完成后。打开DM服务查看器,我们可以看到达梦数据库的实例服务已经在运行了,那么我们接下来就可以创建达梦数据库用户了。

    3. 创建DM数据库用户,创建DM的用户也很简单,选择变空间为MAIN,然后赋予角色所有的权限,如图,然后下一步完成创建。
      这里写图片描述
      这里写图片描述

    4. 创建DM数据源,在创建前将DM数据库安装目录的bin文件夹的整个路径添加到系统环境Path变量里。
      这里写图片描述这里写图片描述
      注:如果DM数据库安装在本机,那么服务器名称就填“localhost”,如果DM数据库不在本机,那么就填服务器的IP地址。带有DM数据库引擎的iDesktop需要单独申请,或者通过扩展开发写这个功能(组件已提供该引擎接口)。


    展开全文
  • SSIS_创建SSIS包和数据源

    万次阅读 2012-05-02 15:29:24
    连接包括数据源和数据目标的连接。 创建SSIS包 创建一个包是开始SSIS的第一步,有两种方式实现: 使用SQL Server自带的导入和导出向导。借助向导,可以将数据从源迁移到目标,然后自动生成一个SSIS包,
  • Tableau工作2.1 Tableau工作2.2 Tableau编辑元数据3. Tableau字段操作3.1 合并字段3.2 字段分层3.3 字段分组3.4 字段拆分3.5 计算字段3.6 集4. Tableau函数与计算4.1 Tableau中的运算符4.2 Tableau函数(1)...
  • DevExpress数据源SqlDataSource使用

    千次阅读 2017-09-03 14:42:25
    DevExpress对数据源进行了重新封装产生了只读数据源SqlDataSource,相较于传统的ADO.NET更易于使用。 SqlDataSource组件旨在创建和配置数据库以访问WinForms应用程序中的各种数据感知控件。使用它来提供对DevExpress...
  • 如图 7‑12所示为某公司销售订单汇总的数据透视,其数据源为外部数据连接,当该数据透视数据源发生变动时,如果需要将变动后的数据更新到数据透视中,就需要对数据透视进行手动刷新操作。那么,有没有...
  • Grafana配置数据源,自定义查询语法

    万次阅读 2019-08-20 15:38:17
    1.概述--美观、强大的可视化监控指标展示工具 grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大...每个数据源...
  • 当项目不只是要用到一个数据库的时候就需要使用到多个数据源了,这种场景很多,比如要查找的数据不在同一个数据库库中,或者是要做数据库读写分离。应对上面的问题主要有两种解决方法。 第一种:在Spring中注入多个...
  • 好像并不是很适合我自己的任务思路,因此在借鉴他们的思路的基础上,通过多次测试,终于走通了动态链接数据源的数据抽取,为了方便一步一步的递进,本次选择了一个数据较少的来测试,具体步骤详见下文。...
  • Jfinal如何正确使用数据源

    万次阅读 2013-11-22 14:24:22
    所谓主数据源是指当你在使用JFinal对数据库操作时,如果没有明确指定数据源,那么默认为使用了主数据源。主数据源可以在两个地方设置,其一是在 new ActiveRecordPlugin 时指定,其二是使用DbKit.setDataSource...
  • 最近在工作上用到了kettle,目前这个开源的ETl工具相对来说比较火,用做数据抽取清洗工作很方便也很快捷。当然也还有不少的问题,比如使用过程中会发生闪退(测试了几个版本都存在),还有建好的Job和Transfer保存...
  • springboot使用mybatis多数据源动态切换的实现

    万次阅读 多人点赞 2018-01-23 12:39:31
    需求:项目使用了读写分离,或者数据进行了分库处理,我们希望在操作不同的数据库的时候,我们的程序能够动态的切换到相应的数据库,执行相关的操作。 首先,你需要一个能够正常运行的springboot项目,配置mybatis...
  • 文章目录多数据源系列简介实操基本使用集成druid连接池源码分析整体结构总结 简介 前两篇博客介绍了用基本的方式做多数据源,可以应对一般的情况,但是遇到一些复杂的情况,比如:动态增减数据源数据源分组,纯粹...
  • 添加和使用ODBC数据源

    千次阅读 2013-12-07 16:14:27
    1.添加用户DSN  我使用的是VC++6.0连接SQL Server2000数据库。首先将SQL Server2000正确进行安装,并且安装它的SP3和SP4补丁。在安装SP3补丁的时候,将“允许... 开始-----控制面板-----管理工具-----数据源(ODBC)
  • sql语句的创建关联和简单的跨表查询简单介绍创建==创建数据库====创建一个用户并授权====指定使用某个数据库====老师、班级、学生====给老师表创建一个唯一索引====添加外键,使关联====往内插入...
  • 史上最全最详细JNDI数据源配置说明

    万次阅读 多人点赞 2017-08-05 17:12:08
    使用数据源就要知道数据源的由来:在java开发使用jdbc都要经历这四步 ①加载数据库驱动程序:(Class.forName(“数据库驱动类”);) ②连接数据库(Connection con = DriverManager.getConnection();) ③操作...
  • Jboss 数据源配置参数

    千次阅读 2017-07-09 11:46:08
    JNDI: 为数据源指定 JNDI 名称 Is enabled: 指定是否应该启动数据源。注:下一个版本中不会提供这个属性的 runtime 支持。 Statistics enabled: ...定义数据源应该使用的 JDBC 驱动。这是一个匹配已安装的驱动的符号
  • 项目地址:https://github.com/helloworlde/SpringBoot-DynamicDataSource/tree/dev 在 Spring Boot... 在这个项目中使用注解方式声明要使用数据源,通过 AOP 查找注解,从而实现数据源的动态切换;该项目为 Product
  • AbstractRoutingDataSource动态数据源...一般的情况下我们都是使用SSH或者SSM框架进行处理我们的数据源的信息。 操作数据一般都是在DAO层进行处理,可以选择直接使用JDBC进行编程(http://blog.csdn.net/yanzi1225627
  • 一、 前言 在Spring Boot中常常会用到配置文件,最常见的莫过于数据源,基本上都使用配置文件的方式进行配置了,即在application.properties/yml中配置连接数据库的基本信息。#driver配置不需要配置,Spring Boot会...
  • 用户不会建立数据源,那么程序实现自动创建。自动创建有很多方法,不过不外乎是修改注册表,我觉得最好的方法是以下方法。调用winapi函数 Option Compare Database Option Explicit Private Const REG_SZ
  • postgresql 创建数据表。临时

    千次阅读 2015-05-23 23:39:30
    CREATE TABLE -- 定义一个新 Synopsis CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( { column_name data_type [ DEFAULT default_expr ] [ column_constraint
  • SpringBoot整合Sharding-JDBC,实现从数据库读取sharding-jdbc数据源,实现多种数据库数据源切换,数据库方言动态切换 Hello,隔壁老王时隔很久很久又来了,今天给大家介绍的是一个分库分表的框架—sharding-jdbc。...
  • SQL(创建导入数据)

    千次阅读 2019-06-13 08:47:19
    创建导入数据 1 在数据库中创建一个新的数据库,命名。 2 命名之后在数据库文件选择路径,两个都要确定。 3 在新建的数据库中新建一个,... 路径:数据源excel;文件路径根据文件所在的地方; 然后是...
  • 最近项目需要指出多数据源,同时支持事务回滚,这里记录一下 1、多数据源方式介绍 主要方式有以下两种: 通过配置多个SqlSessionFactory 来实现多数据源,这么做的话,未免过于笨重,而且无法实现动态添加数据源...
  • 【springboot专题】二十 springboot中如何配置多数据源

    千次阅读 多人点赞 2020-03-08 14:22:40
    使用springboot+mybatis-plus+多数据源+swagger实现多数据源,以及如何解决多数据源事务一致性。
  • 文章目录概述步骤Step1Step1Step1Step1Step1Step1Step1Step1Step1Step1Step1Step1Step1Step1代码 概述 Spring Boot2.x-09 基于Spring Boot...多数据源的支持我们通过这篇博文来梳理。 单个数据源 见 Spring Boot2.x-...
  • Spring Boot Mybaits mybatis基本配置、多数据源切换、动态加载数据源

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 434,578
精华内容 173,831
关键字:

创建查询使用的数据源只能是表