精华内容
下载资源
问答
  • 在数据库中新建两个表
    千次阅读 多人点赞
    2021-01-19 15:23:42

    前言

    • 应用场景不同,操作主数据库db_1之外,还需要操作从数据库db_2
    • 不管操作什么数据库,配置数据库连接时注意:driver-class-namejdbc-url

    代码实现

    1. 修改 application.yml配置文件,添加db_2数据库连接

    • 注意:配置连接两个数据库,url改为:jdbc-url
    server:
      port: 8083
      servlet:
        context-path: /mes
    spring:
      db1:
        datasource:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/lmes
          username: root
          password: root
          type: com.alibaba.druid.pool.DruidDataSource
      db2:
        datasource:
          driver-class-name: oracle.jdbc.OracleDriver
          url: jdbc:oracle:thin:@//172.20.10.101:1521/PROD
          username: apps
          password: apps
          type: com.alibaba.druid.pool.DruidDataSource
    

    2. 新建config包,添加db1db2的配置文件

    • 主数据库与从数据库配置区别:主数据库有 @Primary注解,从数据库都没有
      在这里插入图片描述

    2.1 主数据库db1,项目启动默认连接此数据库:PrimaryDataSourceConfig

    package com.bbzd.mes.common.datasources;
    
    import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.type.JdbcType;
    import org.mybatis.spring.SqlSessionFactoryBean;
    import org.mybatis.spring.boot.autoconfigure.MybatisProperties;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Primary;
    import org.springframework.core.io.Resource;
    import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
    import org.springframework.jdbc.datasource.DataSourceTransactionManager;
    
    import javax.sql.DataSource;
    import java.io.IOException;
    import java.util.Optional;
    import java.util.stream.Stream;
    
    @Configuration
    @EnableConfigurationProperties(MybatisProperties.class)
    public class PrimaryDataSourceConfig {
        @Autowired
        private MybatisProperties properties;
    
        @Bean(name = "db1DataSource")
        @ConfigurationProperties(prefix = "spring.db1.datasource")
        @Primary
        public DataSource db1DataSource() {
            return DruidDataSourceBuilder.create().build();
        }
    
        @Bean(name = "sqlSessionFactory")
        @ConfigurationProperties(prefix = "mybatis")
        @Primary
        public SqlSessionFactory sqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception {
            SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
            bean.setDataSource(dataSource);
            bean.setTypeAliasesPackage(properties.getTypeAliasesPackage());
            bean.setMapperLocations(resolveMapperLocations(properties.getMapperLocations()));
            properties.getConfiguration().setJdbcTypeForNull(JdbcType.NULL);
            bean.setConfiguration(properties.getConfiguration());
            return bean.getObject();
        }
    
        private Resource[] resolveMapperLocations(String[] mapperLocations) {
            PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver = new PathMatchingResourcePatternResolver();
    
            return Stream.of(Optional.ofNullable(mapperLocations).orElse(new String[0]))
                    .flatMap(location -> Stream.of(getResources(pathMatchingResourcePatternResolver, location))).toArray(Resource[]::new);
        }
    
        private Resource[] getResources(PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver, String location) {
            try {
                return pathMatchingResourcePatternResolver.getResources(location);
            } catch (IOException e) {
                return new Resource[0];
            }
        }
        
        @Bean(name = "db1TransactionManager")
        @Primary
        public DataSourceTransactionManager testTransactionManager(@Qualifier("db1DataSource") DataSource dataSource) {
            return new DataSourceTransactionManager(dataSource);
        }
    
    
    }
    
    

    2.2 从数据库db2:DataSource2Config

    package com.bbzd.mes.common.datasources;
    
    import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.mybatis.spring.SqlSessionFactoryBean;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.datasource.DataSourceTransactionManager;
    
    import javax.sql.DataSource;
    
    @Configuration
    @MapperScan(basePackages = "com.bbzd.mes.oracledao",sqlSessionFactoryRef = "db2SqlSessionFactory")
    public class DataSource2Config {
    
        @Bean(name = "db2DataSource")
        @ConfigurationProperties(prefix = "spring.db3.datasource")
        public DataSource db3DataSource() {
            return DruidDataSourceBuilder.create().build();
        }
    
        @Bean(name = "db2SqlSessionFactory")
        public SqlSessionFactory db2SqlSessionFactory(@Qualifier("db2DataSource") DataSource datasource)
                throws Exception {
            SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
            bean.setDataSource(datasource);
            bean.setMapperLocations(
                    new PathMatchingResourcePatternResolver().getResources("classpath*:oracle_mappers/*.xml"));
            return bean.getObject();
        }
    
        @Bean(name="db2transactionManager")
        public DataSourceTransactionManager transactionManagerOne(){
            return  new DataSourceTransactionManager(db3DataSource());
        }
    
        @Bean(name = "db2JdbcTemplate")
        public JdbcTemplate jdbcTemplate(
                @Qualifier("db2DataSource") DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    }
    
    

    3. dao层

    注意:主数据库与从数据库区别:从数据库需要使用@Transactional 注解指向db2数据源

    3.1 主数据库db1,dao层写法

    public interface UserMapper {
        boolean save(UserVo userVo);
    }
    

    3.2 从数据库db2,dao层写法

    @Transactional(value = "db2transactionManager")
    public interface UserMapper {
        UserDto findById(Inter id);
    }
    

    4. resources目录下xml注意事项

    db1 和 db2 xml文件 namespace不同

    • 数据库db1,User.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="com.bbzd.mes.dao.UserMapper">
    
    </mapper>
    
    • 数据库db2,User.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    <mapper namespace="com.bbzd.mes.oracledao.UserMapper">
    
    </mapper>
    
    更多相关内容
  • 如何在数据库中新建简易?

    万次阅读 2020-02-20 18:15:58
    这里一会产生两个文件 一个是行数据 另外一个就是数据库teacher的log,单击确定 ③:建立 完成②之后呢我们就会在数据库下看到我们刚才创建的Teacher了 打开它 我们右键选择【新建】-【】 ④:输入...

    铛铛铛铛!!!!!!!!!!!!!
    Hello!~ Ladies and 乡亲们!今天我们又见面了!
    今天讲点什么好呢 昨天老师讲了在数据库中制作一个简易表的过程
    来我们一起学习下

    .
    .
    .

    ①:右击【数据库】 选择【新建数据库】
    在这里插入图片描述
    ②:输入数据库名称
    在这里一会产生两个文件 一个是行数据 另外一个就是数据库teacher的log,单击确定在这里插入图片描述
    ③:建立表
    完成②之后呢我们就会在数据库下看到我们刚才创建的表Teacher了
    打开它 我们右键选择【新建】-【表】

    在这里插入图片描述
    ④:输入表的数据
    这里列名就是属性 数据类型就是我们在语言中学的数据类型int float…
    允许Null值即为是否可以为空 还可以进行插入列删除列etc. 下面我们开始填写

    在这里插入图片描述

    在这里插入图片描述
    填好之后保存即可 刷新找到我们建立的表-【编辑前200行】
    在这里插入图片描述
    **编辑之后 点击执行即可 **
    删除元组右键选择删除即可
    在这里插入图片描述

    好好好好好了 这样一个简易的表就做完了
    感触:刚开始做详略之处做的不是很好 有些太过详细 不过这个过程我是很享受滴哈哈哈 不写了去吃饭了~

    展开全文
  • DBeaver连接mysql数据库: ...点击“确定”按钮后,可能会遇到失败,此时,我们可以直接通过sql语句来实现,SQL控制台输入CREATE DATABASE bien_test,执行sql命令就可以完成创建了。 (二)创建数据

    DBeaver连接mysql数据库:
    在这里插入图片描述点击“数据库”,然后点击第一个“新建连接”;
    在这里插入图片描述
    选择一个数据库类型,点击就好。第一次连接数据库可能要下载驱动。傻瓜式操作,点击就好。

    通过DBeaver工具链接数据库后,我们就可以通过菜单或者命令功能来实现我们想要的目的。
    (一)创建数据库
    新建数据库,如下图所示:
    在这里插入图片描述

    在点击“确定”按钮后,可能会遇到失败,此时,我们可以直接通过sql语句来实现,在SQL控制台中输入CREATE DATABASE bien_test,执行sql命令就可以完成创建了。

    (二)创建数据表

    在bien_test数据库下新建表table_a(名称任意,只要是合法的名称即可),如下所示:
    在这里插入图片描述

    当点击右下角的“保存”按钮时,提示这样的信息“Incorrect table definition; there can be only one auto column and it must be defined as a key”(自增长字段不是主键),此时需要在约束中指定id为主键,如下图所示:
    在这里插入图片描述

    这样设置好后,在点击“保存”,就可以成功创建数据表了。接下来,我们通过菜单或快捷键的方式来创建一个跟tabel_a表格式类似的新表,先选中tabel_a,右击–>菜单–>复制,或者直接使用Ctrl+C快捷键,然后Ctrl+V粘贴,最后点击右下角的“保存”按钮就完成新表的创建了,我们将该表重新命名为tabel_b。注意了,通过复制、粘贴表的方式,只能是将表的各种配置信息进行拷贝,而表中的数据是没有进行拷贝的。

    (三)填充数据

    在SQL控制台中输入如下两条语句:

    insert into bien_test.tabel_a(name, age, sex) values ('Jack', 12, '男')
    insert into bien_test.tabel_a(name, age, sex) values ('Anny', 20, '女')
    

    这样就可以在table_a中填充两条示例数据了,如下图所示:
    在这里插入图片描述

    (四)拷贝数据表

    1、通过菜单方式进行拷贝

    将数据表tabel_a中的数据拷贝到数据表tabel_b中,先选中tabel_b,右击,选择导入数据,如下图所示:
    在这里插入图片描述
    在这里插入图片描述

    点击上图的红色框,选择源端,我们选择了tabel_a表作为源端,如上图的右边所示。接着,按操作步骤一步一步点击即可。最终,tabel_b的数据如下图所示:
    在这里插入图片描述

    就这样,就完成了数据表中数据的拷贝。此外,我们可以先不创建新表,直接通过源表来导出数据至一个运行中创建的新表,比如:bien_test数据库中暂时没有tabel_c表,我们事先不要创建tabel_c表,同样可以将tabel_a表的数据拷贝到tabel_c表中,具体操作如下:

    (1)选中tabel_a表,右击,选择“导出数据”,如下图所示:
    在这里插入图片描述
    在这里插入图片描述

    (2)在上图中,在Target列中输入新表tabel_c名称,而Mapping这一列会自动默认选择create(表示新建表);接下来,按照界面提示按钮一步一步完成操作即可。tabel_c表中数据最终的效果与tabel_b表中数据一样。由此可见,在拷贝表数据时可以不用事先创建表,直接有源表导出至一个运行时创建的新表。

    2、通过sql命令进行拷贝

    (1)insert select方式

    该方式事先要新建一个表,假设为tabel_d表,才可以将tabel_a表数据拷贝到tabel_d表中。

    insert into bien_test.tabel_d(name, age, sex) select name, age, sex from bien_test.tabel_a
    

    通过运行上述命令后完成了数据从tabel_a表拷贝到tabel_d表的过程,注意了tabel_a表中所有的数据都会被拷贝到tabel_d表中。

    (2)select into方式

    该方式可以不用事先创建表,假设为tabel_e表,通过select into方式也是可以完成数据表的拷贝。

    select * into tabel_e from bien_test.tabel_a
    

    经测试,在MySQL中上述语句执行失败,此时我们需要稍作修改一下:

    create table tabel_e as select * from bien_test.tabel_a
    

    上述命令会执行成功,最终也是完成了数据的拷贝。需要注意的是,这种方式的拷贝,主键信息是没有被复制过来的!!!

    展开全文
  • 第一种:使用CMD命令我们可以cmd命令窗口使用sql语句建立数据库,创建数据库的sql语句语法格式如下:CREATE DATABASE [IF NOT EXISTS] [[DEFAULT] CHARACTER SET ] [[DEFAULT] COLLATE ];语法说明[ ]的内容是可...

    第一种:使用CMD命令

    我们可以在cmd命令窗口使用sql语句建立数据库,创建数据库的sql语句语法格式如下:

    CREATE DATABASE [IF NOT EXISTS]

    [[DEFAULT] CHARACTER SET ] [[DEFAULT] COLLATE ];

    语法说明

    [ ]中的内容是可选的。

    :创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,注意在 MySQL 中不区分大小写。

    IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。

    [DEFAULT] CHARACTER SET:指定数据库的默认字符集。

    [DEFAULT] COLLATE:指定字符集的默认校对规则。

    除了数据库名我们不可以省略,其他的我们都可以省略他们采用默认值。

    我们采用如下命令来创建数据库:

    Create database test3;

    然后采用如下命令查看结果:

    Show databases;

    结果如下图所示:

    9852abb392ae57afbd38d4d102f09751.png

    第二种:使用安装时自带的MySQLworkbench

    如果安装数据库是没有带着安装它,可以到MySQL官网再去下载一个,下载地址: https://www.mysql.com/products/workbench/

    MySQL Workbench简介

    MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。它是MySQL官方提供的一个可视化管理工具,跨多个平台而且免费。

    具体操作

    打开MySQLworkbench

    找到MySQLworkbench的.exe文件,点击执行

    0a2003ee0f0dd563057ff6ba040d0a89.png

    选择要使用的用户输入对应信息进行登录:

    b69c3e810b39382988a6c77dfa3c073b.png

    我们可以使用工具栏上的创建数据库(左上红框)进行简单配置后直接创建数据库,如下图:

    d7172f4c075dcccaeade09e97bce7bee.png

    我们也可以使用命令:

    create database 数据库名称;

    (注意最后有分号)来创建。点击红框中的小闪电执行Sql语句。

    8fb76033cee17d4a116c551d170fa862.png

    注意,此方法可能不会立马刷新,可以在左下角点击右键选择Refresh all 来刷新。

    bd7cd1d2d538b19db830025abd0e012e.png

    Refresh all 刷新后,我们新创建的数据库test2出现在了左侧的列表中。

    f45b2d0689a216b937589095b7310da6.png

    第三种:使用第三方工具

    我们以Navicat为例:

    1、进入第三方工具后,再左侧列表中点击鼠标右键然后选择新建数据库

    7528834fcb1a94f1e57f30bce3c9481e.png

    2、填入创建数据库的具体信息后点击确定即可创建数据库。

    51369624124f03fa253b0fe11399ddf3.png

    结果如下图所示,数据库test4创建成功!

    93cc0b089a54bc9432291bced61cc6fe.png

    展开全文
  • 参考资料地址:https://www.cnblogs.com/BeginMan/p/3249472.html一、查看数据库,字段,详情1.... #列出库包含的3.查看表中的列的属性详情SHOW COLUMNS FROM auth_group;或者DESCRIBE auth_...
  • navicat新建数据库表

    千次阅读 2020-12-30 17:30:43
    新建查询,选择要哪个数据库建表,输入代码,运行 -- ---------------------------- -- Table structure for `data2` -- ---------------------------- DROP TABLE IF EXISTS `data2`; CREATE TABLE `data2` ( `...
  • springboot连接两个或多个数据库

    千次阅读 2022-04-24 14:49:49
    一般我们的SpringBoot项目只连一个数据库,下面是springboot连接2以上的数据库方式 这里连得相同数据库数据库名不一样做区分 1、配置application.yml,添加2个数据库连接 server: port: 8080 spring: ...
  • SQL Server新建数据库种方法

    千次阅读 2022-03-06 11:15:36
    SQL Server新建数据库种方法分别是: SQL Server Management Studio管理工具可视化创建 使用Transact-Sql创建 SQL Server Management Studio管理工具可视化创建: 看,创建完成了 使用Transact-...
  • 如何实现oracle两个数据库之间的同步关注:166答案:2手机版解决时间 2021-01-23 22:02提问者美人如画皮2021-01-23 13:26如何实现oracle两个数据库之间的同步最佳答案二级知识专家回憶沒有意義2021-01-23 14:25...
  • Visual Studio 创建一个数据库并添加 可以使用 Visual Studio 来创建和更新 SQL Server Express LocalDB 的本地数据库文件。还可以通过 Visual Studio 的 "SQL Server 对象资源管理器工具" 窗口...
  • 将Excel如关系型数据库中表一般关联起来操作,VLOOKUP()函数关联两个或多个Excel 不少同学学过MySQL,Oracle或者SQLserver等关系型数据库后习惯了使用外键直接将两张关系直接关联起来进行操作。而日常办公...
  • Oracle/plsql将一个表中的数据复制到另一个表中两表在同一数据库) 创建数据库 -- Create table create table STUDENTDEMODEMODEMO ( id VARCHAR2(20), name VARCHAR2(20) ) -- DATA为自己的空间 tablespace...
  • 联合查询不同数据库两个表里数据。 select a.*,b.* from 数据库1. a,数据库2. b from a.id=b.id 例如:注意学生数据库里和老师数据库里的用户信息要有学校ID SELECT a.,b. FROM student.user_info a,teacher...
  • 最近遇到了一个需求:用户客户端页面上进行数据录入,下拉列表的选择,然后用户对页面数据进行提交。...我们页面有两个下拉列表,每个列表有两个选项,用户的选择是随机的。因此正常情况下这两个列表的笛卡尔...
  • 在数据库创建新

    千次阅读 2021-05-09 16:29:04
    创建好后在新建数据库中找到命名为“”的文件夹,找到后右键此文件夹选择新建,再选择 这时来到了创建,首先列名的命名根据自身情况而定,然后第一格子我们设为主键且数据类型为int类型,后续的...
  • 数据库(三) 建立联系-外键

    千次阅读 2021-02-06 11:48:42
    1.理解之间建立关系的必要性比如我们建立了一张个人信息,把所有人的信息都存在这张表这张表有老师和他们所属的部门,并且不同的部门工作也是不同的所有数据存放一张表中的弊端1.组织结构不清晰2.浪费...
  • 如何一台机器上(windows)安装两个MYSQL数据库 前言: 本地安装的是mysql-8.0.22版本,由于某个项目变更,需要将8.0版本降到5.6。但为了不影响其他项目运行使用,不得不同一台机器上安装两个版本mysql。本机以...
  • Springboot配置连接两个或多个数据库

    万次阅读 多人点赞 2020-07-31 16:08:00
    项目需要从两个不同的数据库查询数据,之前实现方法是:springboot配置连接一个数据源,另一个使用jdbc代码连接。 为了改进,现在使用SpringBoot配置连接两个数据源 实现效果: 一个SpringBoot项目,同时连接...
  • visio中新建数据库模型图打开visio 2010,文件—>新建—>数据库—>数据库模型图。建立数据库模型图之后,菜单栏多出一菜单项"数据库"。看下图菜单栏多出了一个数据库项2.依次画数据库建立的每张、视图...
  • 新建项目,向数据库中写入内容并将数据库表内容显示页面上。 主要参考资料:https://blog.csdn.net/lxfHaHaHa/article/details/76565756 参考教程的代码及配置是Django1.x下的规则,将相关内容改成了符合...
  • 数据库数据库的创建

    千次阅读 2020-05-26 18:55:50
    数据库的创建 本文使用SQLserver数据库为师范 1 目的 1、掌握利用 SSMS 及 SQL 命令种方式管理数据库; 2、掌握利用 SSMS 及 SQL 命令种方式管理; 3、理解数据文件、事务日志文件、文件组的概念; 4、...
  • Android Studio添加动态的数据库Database Inspector来可视化操作数据库 二、使用步骤 1.添加插件Database Inspector import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as ...
  • 新建数据库的两种方式: 一:对象资源管理器单击右键选择新建数据库, ...输入:--这是SQL的注释信息,使用两个减号来注释。 drop table student --删除student create table student --创建st
  • Both databases hosted in the same SQL Server 2017 instance 两个数据库托管同一SQL Server 2017实例 AdventureWorks2018 AdventureWorks2018 SQLShackDemo SQLShackDemo The tables that will be copied ...
  • 我目前用的是pl/sql对数据库进行操作,数据库中大概有几百张表,我想看看这些之间有没有关联关系(我需要用到的有没有关联关系以及是通过那些字段关联的)。我试着用网上的方法:新建diagram window,...
  • DM8达梦数据库:数据库新建用户

    千次阅读 2020-11-10 23:26:21
    DM数据库新建用户达梦数据库入门的使用 ...你可能要问:两个表空间有什么区别呢? 索引存储的空间的内部结构是连续的, 而存储数据的空间内部结构不是连续的,内部结构不同, 所以不建议将索引空间和数据空间放
  • 在数据库中创建用户的具体步骤 1.启动Microsoft SQL Server Management Studio工具,用windows的管理员身份登录,然后 安全性>登录名>右击>新建登录名 2.输入登录名和使用sql server身份验证的样式...
  • -数据库就是可以以的形式存取数据,并和别人共享的库。 RDBMS-关系型数据库管理系统 sql-结构性查询语言,是标准的关系型数据库语言 讲sql语言之前首先需要电脑上安装数据库: 1.安装sql server和ssms(从...
  • 在数据库如何对表进行查询

    千次阅读 2021-05-08 08:18:56
    想要在数据库里对表进行增删查改的操作的话,首先需要在数据库里要有有数据(下面将会用数据库的随便一张做查询操作)。第一步打开数据库,点击菜单栏下的属性栏里的“新建查询”按钮,然后会弹出来一新的窗体...
  • 数据库几种删除方式

    千次阅读 2020-09-01 14:13:51
    drop 语法: drop table 名称 删除内容和定义,删除的是整个(结构和数据),将所占用的空间全...并且删除的过程不会激活与有关的删除触发器。执行速度快。 delete delete from 名称 where 列名称 = 值

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 357,444
精华内容 142,977
热门标签
关键字:

在数据库中新建两个表